sl@0: /* sl@0: * Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: Active object for each asynchronous request in RTelephonyAudioRoutingSession. sl@0: * Notifies MTelephonyAudioRoutingPolicyObserver upon request completion. sl@0: * sl@0: */ sl@0: sl@0: sl@0: sl@0: sl@0: #ifndef TELEPHONYAUDIOROUTINGPOLICYREQUEST_H sl@0: #define TELEPHONYAUDIOROUTINGPOLICYREQUEST_H sl@0: sl@0: #include sl@0: #include "TelephonyAudioRoutingManagerSession.h" sl@0: #include "TelephonyAudioRoutingClientServer.h" sl@0: #include "TelephonyAudioRoutingManager.h" sl@0: sl@0: // CLASS DECLARATION sl@0: sl@0: /** sl@0: * Implements active object for outstanding asynchronous request. sl@0: * sl@0: * @lib TelephonyAudioRoutingSession.lib sl@0: * @since Series 60 3.1 sl@0: */ sl@0: class CTelephonyAudioRoutingPolicyRequest : public CActive sl@0: { sl@0: sl@0: public: // Constructors and destructor sl@0: sl@0: /** sl@0: * Two-phased constructor. sl@0: */ sl@0: sl@0: static CTelephonyAudioRoutingPolicyRequest* NewL( RTelephonyAudioRoutingManagerSession& aSession, MTelephonyAudioRoutingPolicyObserver& aObserver, CTelephonyAudioRoutingManager& aAudioRouting, TTelAudRtngServRqst aRequest ); sl@0: sl@0: sl@0: /** sl@0: * Destructor. sl@0: */ sl@0: virtual ~CTelephonyAudioRoutingPolicyRequest(); sl@0: sl@0: public: // New functions sl@0: sl@0: /** sl@0: * Completes the outstanding request. sl@0: * @since Series 60 3.1 sl@0: * @param aRequest Request being completed sl@0: * @param aError A standard system error code sl@0: * @return void sl@0: */ sl@0: void CompleteRequest( TTelAudRtngServRqst aRequest, TInt aError ); sl@0: sl@0: private: // Functions from base classes sl@0: sl@0: /** sl@0: * From CActive sl@0: * Cancel outstanding request sl@0: * @param none sl@0: * @return void sl@0: sl@0: */ sl@0: void DoCancel(); sl@0: sl@0: /** sl@0: * From CActive sl@0: * Implementation of CActive::RunL. Called when server request has completed. sl@0: * @param none sl@0: * @return void sl@0: sl@0: **/ sl@0: void RunL(); sl@0: sl@0: private: sl@0: sl@0: /** sl@0: * C++ default constructor. sl@0: */ sl@0: CTelephonyAudioRoutingPolicyRequest( RTelephonyAudioRoutingManagerSession& aSession, MTelephonyAudioRoutingPolicyObserver& aObserver, CTelephonyAudioRoutingManager& aAudioRouting, TTelAudRtngServRqst aRequest ); sl@0: sl@0: sl@0: /** sl@0: * By default Symbian 2nd phase constructor is private. sl@0: */ sl@0: void ConstructL(); sl@0: sl@0: private: // Data sl@0: sl@0: sl@0: RTelephonyAudioRoutingManagerSession& iManagerSession; sl@0: MTelephonyAudioRoutingPolicyObserver& iPolicyObserver; sl@0: CTelephonyAudioRoutingManager& iAudioRoutingManager; sl@0: TTelAudRtngServRqst iRequest; sl@0: sl@0: private: // Friend classes sl@0: friend class RTelephonyAudioRoutingManagerSession; sl@0: sl@0: }; sl@0: sl@0: #endif // TELEPHONYAUDIOROUTINGPOLICYREQUEST_H sl@0: sl@0: // End of File