diff -r 3785f754ee62 -r 5360b7ddc251 upnpframework/upnpcommand/inc/upnptaskresourceallocator.h --- a/upnpframework/upnpcommand/inc/upnptaskresourceallocator.h Fri Sep 17 08:31:21 2010 +0300 +++ b/upnpframework/upnpcommand/inc/upnptaskresourceallocator.h Mon Nov 01 12:37:49 2010 +0200 @@ -1,262 +1,214 @@ -/* -* 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: A class that allocates resources for a task -* -*/ - - -#ifndef UPNP_TASKRESOURCEALLOCATOR_H -#define UPNP_TASKRESOURCEALLOCATOR_H - -// INCLUDES -// System -#include - -// upnpframework / avcontroller api -#include "upnpavdeviceobserver.h" // base class -#include "upnpavbrowsingsessionobserver.h" // base class - -// FORWARD DECLARATIONS -class CUPnPCommonUI; -class CUpnpNoteHandler; -class MUPnPAVController; -class CUpnpAVDevice; -class MUPnPAVBrowsingSession; -class CUpnpNoteHandler; - -/** - * A helper class that makes a method async. - */ -class CUpnpTaskResourceAllocator - : public CAsyncOneShot - , public MUPnPAVDeviceObserver - , public MUPnPAVBrowsingSessionObserver - { - public: - - /** - * List of upnp resource types available. - * These types can be combined by masking. - */ - enum TUpnpResourceTypes - { - // open AV controller resource - EResourceAvController = 0x0001, - // start local mediaserver - EResourceLocalMediaServer = 0x0002, - // select an image-capable renderer - EResourceSelectImageRenderer = 0x0100, - // select a copy-capable server - EResourceSelectCopyServer = 0x0200, - // select a copy-capable server (display move title) - EResourceSelectMoveServer = 0x0400, - // a mask, USED ONLY INTERNALLY !!! - EResourceSelectDevice = 0xFF00, - }; - - /** - * static constructor - * @param aCommonUI common UI reference to use - * @param aNoteHandler note handler reference to use - * @param aMode which resources are needed - */ - static CUpnpTaskResourceAllocator* NewL( - CUPnPCommonUI& aCommonUI, - TInt aMode ); - - /** - * destructor - */ - virtual ~CUpnpTaskResourceAllocator(); - - private: - - /** - * constructor - */ - CUpnpTaskResourceAllocator( - CUPnPCommonUI& aCommonUI, - TInt aMode ); - - public: // the interface - - /** - * Allocates the resources, returns when complete. - * A wait note will be displayed during the process. - * displays any necessary errors that occur during the process - */ - void AllocateL(); - - /** - * returns the AVController resource after allocation. - * Note: This method panics if EResourceAvController was not set. - */ - MUPnPAVController& AVController(); - - /** - * returns the selected device - * Note: the method panics if neither EResourceSelectRenderer nor - * EResourceSelectServer was set. - */ - const CUpnpAVDevice& SelectedDevice(); - - - /** - * Sets the pointer to the note handler. The ownership of the pointer - * is not transfered. - * - * Leaves with KErrArgument, if the provided pointer is invalid. - * - * @since S60 3.2 - * @param aNoteHandler (CUpnpNoteHandler*) the pointer to the note - * handler - */ - void SetNoteHandlerL( CUpnpNoteHandler* aNoteHandler ); - - - public: // from CAsyncOneShot - - /** - * Asynchronous execution - */ - void RunL(); - - /** - * Execution of the error branch - */ - TInt RunError( TInt aError ); - - private: // own methods - - /** - * cleans up all resources - */ - void Cleanup(); - - /** - * creates the AVController resource - */ - void StartAvControllerL(); - - /** - * Starts the local mediaserver - */ - void StartLocalMediaServerL(); - - - /** - * shows a device selection popup - */ - void SelectDeviceL(); - - /** - * sets an asynchronous error code - */ - void SetErrorCode( TInt aError ); - - public: // Call back methods of MUPnPAVDeviceObserver - - void UPnPDeviceDiscovered( const CUpnpAVDevice& aDevice ); - - void UPnPDeviceDisappeared( const CUpnpAVDevice& aDevice ); - - void WLANConnectionLost(); - - - public: // Call back methods of MUPnPAVBrowsingSessionObserver - - void BrowseResponse( - const TDesC8& aBrowseResponse, - TInt aError, - TInt aMatches, - TInt aTotalCount, - const TDesC8& aUpdateId - ); - - void SearchResponse( - const TDesC8& aSearchResponse, - TInt aError, - TInt aMatches, - TInt aTotalCount, - const TDesC8& aUpdateId - ); - - void SearchCapabilitiesResponse( - TInt aError, - const TDesC8& aSearchCapabilities - ); - - void CreateContainerResponse( TInt aError, - const TDesC8& aObjectId ); - - void DeleteObjectResponse( TInt aError ); - - void MediaServerDisappeared( - TUPnPDeviceDisconnectedReason aReason ); - - void ReserveLocalMSServicesCompleted( TInt aError ); - - protected: - - /** - * states of the allocator - */ - enum TAllocatorState - { - EStateIdle = 0, // class constructed, allocation not started yet - EStateAllocating, // allocation in progress - EStateWaitingForLMS, // rest done,waiting for local media server - EStateReady, // allocation succesful - EStateError // allocation failed - }; - - private: - - // internal state - TAllocatorState iState; - - // the common UI resource - CUPnPCommonUI& iCommonUI; - - // the note handler - CUpnpNoteHandler* iNoteHandler; - - // resource allocation mode - TInt iMode; - - // avcontroller resource - MUPnPAVController* iAVController; - - // selected device - CUpnpAVDevice* iSelectedDevice; - - // the mediaserver keepalive browsing session - MUPnPAVBrowsingSession* iMediaServerSession; - - // error occurred in some asynchronous operation - TInt iErrorCode; - - // flag for local mediaserver start state - TBool iLocalMSStarted; - - // flag for local mediaserver callback - TBool iLocalMSSCompleted; - - - }; - - -#endif // UPNP_TASKRESOURCEALLOCATOR_H - -// End of File +/* +* Copyright (c) 2007-2009 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: A class that allocates resources for a task +* +*/ + + +#ifndef UPNP_TASKRESOURCEALLOCATOR_H +#define UPNP_TASKRESOURCEALLOCATOR_H + +// INCLUDES +// System +#include + +// upnpframework / avcontroller api +#include "upnpavdeviceobserver.h" // base class + + +// FORWARD DECLARATIONS +class CUPnPCommonUI; +class CUpnpNoteHandler; +class MUPnPAVController; +class CUpnpAVDevice; +class CUpnpNoteHandler; + +/** + * A helper class that makes a method async. + */ +class CUpnpTaskResourceAllocator + : public CAsyncOneShot + , public MUPnPAVDeviceObserver + { + public: + + /** + * List of upnp resource types available. + * These types can be combined by masking. + */ + enum TUpnpResourceTypes + { + // open AV controller resource + EResourceAvController = 0x0001, + // select an image-capable renderer + EResourceSelectImageRenderer = 0x0100, + // select a copy-capable server + EResourceSelectCopyServer = 0x0200, + // select a copy-capable server (display move title) + EResourceSelectMoveServer = 0x0400, + // a mask, USED ONLY INTERNALLY !!! + EResourceSelectDevice = 0xFF00, + }; + + /** + * static constructor + * @param aCommonUI common UI reference to use + * @param aNoteHandler note handler reference to use + * @param aMode which resources are needed + */ + static CUpnpTaskResourceAllocator* NewL( + CUPnPCommonUI& aCommonUI, + TInt aMode ); + + /** + * destructor + */ + virtual ~CUpnpTaskResourceAllocator(); + + private: + + /** + * constructor + */ + CUpnpTaskResourceAllocator( + CUPnPCommonUI& aCommonUI, + TInt aMode ); + + public: // the interface + + /** + * Allocates the resources, returns when complete. + * A wait note will be displayed during the process. + * displays any necessary errors that occur during the process + */ + void AllocateL(); + + /** + * returns the AVController resource after allocation. + * Note: This method panics if EResourceAvController was not set. + */ + MUPnPAVController& AVController(); + + /** + * returns the selected device + * Note: the method panics if neither EResourceSelectRenderer nor + * EResourceSelectServer was set. + */ + const CUpnpAVDevice& SelectedDevice(); + + + /** + * Sets the pointer to the note handler. The ownership of the pointer + * is not transfered. + * + * Leaves with KErrArgument, if the provided pointer is invalid. + * + * @since S60 3.2 + * @param aNoteHandler (CUpnpNoteHandler*) the pointer to the note + * handler + */ + void SetNoteHandlerL( CUpnpNoteHandler* aNoteHandler ); + + + public: // from CAsyncOneShot + + /** + * Asynchronous execution + */ + void RunL(); + + /** + * Execution of the error branch + */ + TInt RunError( TInt aError ); + + private: // own methods + + /** + * cleans up all resources + */ + void Cleanup(); + + /** + * creates the AVController resource + */ + void StartAvControllerL(); + + /** + * Starts the local mediaserver + */ + void StartLocalMediaServerL(); + + + /** + * shows a device selection popup + */ + void SelectDeviceL(); + + /** + * sets an asynchronous error code + */ + void SetErrorCode( TInt aError ); + + public: // Call back methods of MUPnPAVDeviceObserver + + void UPnPDeviceDiscovered( const CUpnpAVDevice& aDevice ); + + void UPnPDeviceDisappeared( const CUpnpAVDevice& aDevice ); + + void WLANConnectionLost(); + + + protected: + + /** + * states of the allocator + */ + enum TAllocatorState + { + EStateIdle = 0, // class constructed, allocation not started yet + EStateAllocating, // allocation in progress + EStateReady, // allocation succesful + EStateError // allocation failed + }; + + private: + + // internal state + TAllocatorState iState; + + // the common UI resource + CUPnPCommonUI& iCommonUI; + + // the note handler + CUpnpNoteHandler* iNoteHandler; + + // resource allocation mode + TInt iMode; + + // avcontroller resource + MUPnPAVController* iAVController; + + // selected device + CUpnpAVDevice* iSelectedDevice; + + // error occurred in some asynchronous operation + TInt iErrorCode; + + }; + + +#endif // UPNP_TASKRESOURCEALLOCATOR_H + +// End of File