diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/mceclientstub/inc/mcemanager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/mceclientstub/inc/mcemanager.h Tue Aug 31 15:12:07 2010 +0300 @@ -0,0 +1,271 @@ +/* +* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + + +#ifndef CMCEMANAGER_H +#define CMCEMANAGER_H + +// INCLUDES +#include +#include +//#include + +// FORWARD DECLARATIONS +class MMceInSessionObserver; +class MMceInEventObserver; +class MMceInReferObserver; +class MMceSessionObserver; +class MMceEventObserver; +class MMceReferObserver; +class MMceStreamObserver; +class MMceRtpObserver; +class CMceSession; +class CMceEvent; +class CMceRefer; +class TMceMediaId; +class CMceAudioCodec; +class CMceVideoCodec; +class TMceTransactionDataContainer; +class CMusTestSessionSimulator; + +// CLASS DECLARATION + +/** +* Class for connecting to MCE server. +* +* This class provides the connection to the MCE server and +* provides functions for setting observers for asynchronous +* events. +* +* The user should create only one instance of this class. +* +* @lib mceclient.lib +*/ +class CMceManager : public CBase + { + + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aAppUid, uid of the application. + * @param aContainer, if set, detailed data provided in observers. + */ + IMPORT_C static CMceManager* NewL( + const TUid& aAppUid, + TMceTransactionDataContainer* aContainer = 0); + + /** + * Destructor. + */ + IMPORT_C ~CMceManager(); + + public: // Functions + + /** + * Set observer for incoming sessions. + * @param aInSessionObserver, observer of the sessions. + */ + IMPORT_C void SetInSessionObserver( + MMceInSessionObserver* aInSessionObserver ); + + /** + * Set observer for incoming events. + * @param aInEventObserver, observer of the events. + */ + IMPORT_C void SetInEventObserver( + MMceInEventObserver* aInEventObserver ); + + /** + * Set observer for incoming refers. + * @param aInReferObserver, observer of the refers. + */ + IMPORT_C void SetInReferObserver( + MMceInReferObserver* aInReferObserver ); + + /** + * Set observer for sessions. + * @param aSessionObserver, observer of the sessions. + */ + IMPORT_C void SetSessionObserver( + MMceSessionObserver* aSessionObserver ); + + /** + * Set observer for medias + * @param aMediaObserver, observer of medias. + */ + IMPORT_C void SetMediaObserver( + MMceStreamObserver* aMediaObserver ); + + /** + * Set observer for rtp + * @param aRtpObserver, observer of rtp + */ + IMPORT_C void SetRtpObserver( + MMceRtpObserver* aRtpObserver ); + + /** + * Sets observer for incoming events. + * @param aEventObserver, observer of the event. Ownership is + * not transferred. + */ + IMPORT_C void SetEventObserver( + MMceEventObserver* aEventObserver); + + /** + * Sets observer for incoming REFER events. + * @param aReferObserver, observer of the event. Ownership is + * not transferred. + */ + IMPORT_C void SetReferObserver( + MMceReferObserver* aReferObserver); + + /** + * Gets currently ongoing sessions + * @return RPointerArray array of sessions. + */ + IMPORT_C const RPointerArray< CMceSession >& Sessions() const; + + /** + * Gets currently ongoing events + * @return RPointerArray array of events. + */ + IMPORT_C const RPointerArray< CMceEvent >& Events() const; + + /** + * Sets observer for incoming SUBSCRIBE events. + * @param aObserver, observer of the event. Ownership is + * not transferred. + */ + IMPORT_C const RPointerArray< CMceRefer >& Refers() const; + + /** + * Returns supported audio codecs of the system. + * @return supported audio codecs of the system. + */ + IMPORT_C const RPointerArray& SupportedAudioCodecs() const; + + /** + * Returns supported video codecs of the system. + * @return supported video codecs of the system. + */ + IMPORT_C const RPointerArray& SupportedVideoCodecs() const; + + /* + * Set default headers for the method. The headers will always be added + * to the given SIP methods unless overwritten with + * headers given as parameter for the API method triggering the + * sending of request/response. + * @param aMethods, the SIP methods the headers are added to. + * @param aHeaders, the default headers, ownership is transferred. + */ + IMPORT_C void SetDefaultHeadersL( CDesC8Array* aMethods, CDesC8Array* aHeaders ); + + /* + * Get the default headers assigned for the given method. + * If none is assigned, and empty array is returned. + * @param aMethod, the method for which the headers are queried. + * @return the default headers, ownership is transfered. + */ + IMPORT_C CDesC8Array* DefaultHeadersL( const TDesC8& aMethod ) const; + + + public: // Functions + + /** + * Gets observer for incoming sessions + * @return incoming session observer + */ + MMceInSessionObserver* InSessionObserver() const; + + /** + * Gets session observer + * @return session observer + */ + MMceSessionObserver* SessionObserver() const; + + /** + * Gets media observer + * @return media observer + */ + MMceStreamObserver* MediaObserver() const; + + /** + * Gets rtp observer + * @return rtp observer + */ + MMceRtpObserver* RtpObserver() const; + + + /** + * Returs transaction container for detailed data. + * Returns NULL, if none exists. + */ + TMceTransactionDataContainer* TransactionContainer() const; + + private: + + /** + * C++ default constructor. + * @param aAppUid, uid of the application. + * @param aContainer, if set, detailed data provided in observers. + */ + CMceManager( const TUid& aAppUid, + TMceTransactionDataContainer* aContainer = 0); + + /** + * By default Symbian 2nd phase constructor is private. + */ + void ConstructL(); + + + public: // Stub data + + /** + * detailed callbacks wanted + */ + TBool iDetailedCallbacks; + + /** + * sessions + */ + RPointerArray iSessions; + + /** + * supported audio codecs + */ + RPointerArray iSupportedAudioCodecs; + + /** + * supported audio codecs + */ + RPointerArray iSupportedVideoCodecs; + + MMceSessionObserver* iSessionObserver; + MMceStreamObserver* iMediaObserver; + MMceRtpObserver* iRtpObserver; + MMceInSessionObserver* iInSessionObserver; + + TMceTransactionDataContainer* iContainer; + + private: // Data + CMusTestSessionSimulator* iSessionSimulator; + + friend class CMceSession; + }; + +#endif