diff -r 000000000000 -r 7f85d04be362 upnpavcontroller/upnpavcontrollerhelper/inc/upnpabstractbrowsingsessionobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpavcontroller/upnpavcontrollerhelper/inc/upnpabstractbrowsingsessionobserver.h Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,178 @@ +/* +* Copyright (c) 2007 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: An abstract browsing session observer implementation +* +*/ + + + + + + +#ifndef UPNPABSTRACTBROWSINGSESSIONOBSERVER_H +#define UPNPABSTRACTBROWSINGSESSIONOBSERVER_H + +// INCLUDES +#include +#include "upnpavbrowsingsessionobserver.h" // base class + +// FORWARD DECLARATIONS +class MUPnPAVBrowsingSession; + +// CLASS DECLARATION + +/** +* An abstract class for implementing a browsing session observer. +* This class is purposed as a base class for imnplementing a +* browsing observer. There are 2 main use cases: +* 1. reducing implementation code so that the actual observer will +* only need to write the observer methods that are really used. +* 2. implementing an observer proxy that will attach itself to a session +* and just handle some of the callbacks and forward a majority of the +* callbacks the original session observer. +* +* @lib upnpavcontrollerhelper.lib +* @since S60 3.2 +*/ +class CUPnPAbstractBrowsingSessionObserver + : public CBase + , public MUPnPAVBrowsingSessionObserver + { + +public: // construction/destruction + + /** + * default constructor. + */ + IMPORT_C CUPnPAbstractBrowsingSessionObserver(); + + /** + * destructor + */ + IMPORT_C virtual ~CUPnPAbstractBrowsingSessionObserver(); + + +public: // the abstract observer interface + + /** + * Sets the host session for the observer. This is the session where + * the observer will register for callbacks. If the session already + * has an observer, it will become the proxy observer. The default + * implementatin for all observer methods is to forward the method to + * the observer, if it exists. + * + * @since S60 3.2 + * @param aHostSession, browsing session + */ + IMPORT_C void SetSession( MUPnPAVBrowsingSession& aHostSession ); + + /** + * Enables receiving callbacks. When enabled, the abstract observer + * registers to the given session and thus starts receiving callbacks. + * Note that only those callbacks that are overwritten in the derived + * class will actually provide some value. Other will be either processed + * in an empty method, or forwarded to the observer that previously was + * registered as an observer (proxy mode) + * + * @since S60 3.2 + */ + IMPORT_C void EnableSessionObserver(); + + /** + * Disables receiving session callbacks. The observer interface is + * deregistered, and if before observer registration there was an + * original observer interface (proxy mode) the original observer + * is restored. + * + * @since S60 3.2 + */ + IMPORT_C void DisableSessionObserver(); + + /** + * Returns true if the observer is active (registered for events) + * + * @since S60 3.2 + */ + IMPORT_C TBool IsSessionObserverEnabled(); + +public: // MUPnPAVBrowsingSessionObserver + + /** + * see MUPnPAVBrowsingSessionObserver + */ + void BrowseResponse( + const TDesC8& aBrowseResponse, + TInt aError, + TInt aMatches, + TInt aTotalCount, + const TDesC8& aUpdateId ); + + /** + * see MUPnPAVBrowsingSessionObserver + */ + void SearchResponse( + const TDesC8& aSearchResponse, + TInt aError, + TInt aMatches, + TInt aTotalCount, + const TDesC8& aUpdateId ); + + /** + * see MUPnPAVBrowsingSessionObserver + */ + void SearchCapabilitiesResponse( + TInt aError, + const TDesC8& aSearchCapabilities ); + + /** + * see MUPnPAVBrowsingSessionObserver + */ + void CreateContainerResponse( TInt aError, + const TDesC8& aObjectId ); + + /** + * see MUPnPAVBrowsingSessionObserver + */ + void DeleteObjectResponse( TInt aError ); + + /** + * see MUPnPAVBrowsingSessionObserver + */ + void ReserveLocalMSServicesCompleted( TInt aError ); + + /** + * see MUPnPAVBrowsingSessionObserver + */ + void MediaServerDisappeared( + TUPnPDeviceDisconnectedReason aReason ); + + +private: // members + + // the host browsing session. Note: NOT OWNED! + MUPnPAVBrowsingSession* iObservedSession; + + // The proxy observer. Note: NOT OWNED! + MUPnPAVBrowsingSessionObserver* iProxyObserver; + + // if observer is enabled + TBool iObserverEnabled; + + }; + + +#endif // UPNPABSTRACTBROWSINGSESSIONOBSERVER_H + +// End of File +