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 MTelephonyAudioObserver upon request completion. sl@0: * sl@0: */ sl@0: sl@0: sl@0: sl@0: sl@0: #ifndef TELEPHONYAUDIOROUTINGREQUEST_H sl@0: #define TELEPHONYAUDIOROUTINGREQUEST_H sl@0: sl@0: #include sl@0: #include "TelephonyAudioRoutingSession.h" sl@0: #include "TelephonyAudioRoutingClientServer.h" sl@0: #include "TelephonyAudioRouting.h" sl@0: 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 CTelephonyAudioRoutingRequest : 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: static CTelephonyAudioRoutingRequest* NewL( RTelephonyAudioRoutingSession& aSession, MTelephonyAudioRoutingObserver& aObserver, CTelephonyAudioRouting& aAudioRouting, TTelAudRtngServRqst aRequest ); sl@0: sl@0: sl@0: /** sl@0: * Destructor. sl@0: */ sl@0: virtual ~CTelephonyAudioRoutingRequest(); 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: 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: void RunL(); sl@0: sl@0: private: sl@0: sl@0: /** sl@0: * C++ default constructor. sl@0: */ sl@0: CTelephonyAudioRoutingRequest( RTelephonyAudioRoutingSession& aSession, MTelephonyAudioRoutingObserver& aObserver, CTelephonyAudioRouting& 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: RTelephonyAudioRoutingSession& iSession; sl@0: MTelephonyAudioRoutingObserver& iObserver; sl@0: CTelephonyAudioRouting& iAudioRouting; sl@0: TTelAudRtngServRqst iRequestOpcode; sl@0: sl@0: private: // Friend classes sl@0: friend class RTelephonyAudioRoutingSession; sl@0: sl@0: }; sl@0: sl@0: #endif // TELEPHONYAUDIOROUTINGREQUEST_H sl@0: sl@0: // End of File