diff -r 000000000000 -r 7f85d04be362 upnpmediaserver/mediaserverengine/inc/upnpmediaserversession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpmediaserver/mediaserverengine/inc/upnpmediaserversession.h Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,155 @@ +/** @file +* Copyright (c) 2005-2006 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: Media Server session +* +*/ + + + +#ifndef C_CUPNPMEDIASERVERSESSION_H +#define C_CUPNPMEDIASERVERSESSION_H + + + +// INCLUDES +#include "upnpmediaserver.h" +#include "upnpmediaserverglobals.h" +#include "upnpmediaserverobserver.h" + +#include + + +// FORWARD DECLARATIONS +class CUpnpObject; +class CUpnpItemList; +class CUpnpBrowseCriteria; +class CUpnpMediaServerEventHandler; +// CLASS DECLARATION + +/** + An instance of class CUpnpMediaServerSession is created for each client + */ +class CUpnpMediaServerSession : public CSession2 + { +public: // New methods + /** + * Create a CUpnpMediaServerSession object using two phase construction, + * and return a pointer to the created object + * @result pointer to new session + */ + static CUpnpMediaServerSession* NewL(CUpnpMediaServer* aServer); + + /** + * Create a CUpnpMediaServerSession object using two phase construction, + * and return a pointer to the created object + * @result pointer to new session + */ + static CUpnpMediaServerSession* NewLC(CUpnpMediaServer* aServer); + + /** + * Destroy the object and release all memory objects + */ + virtual ~CUpnpMediaServerSession(); + + /** + * Notify client about status change + */ + void StatusChanged(); + +public: // From CSession + /** + * Called after a service request from client; from class CSession + * @param aMessage message from client (containing requested operation and any data) + */ + void ServiceL( const RMessage2& aMessage ); + +private: // New methods + + /** + * Perform the first phase of two phase construction + */ + CUpnpMediaServerSession(CUpnpMediaServer* aServer); + + /** + * Perform the second phase construction of a CUpnpMediaServerSession object + */ + void ConstructL() ; + + /** + * Causes the client thread to panic + * @param panic code + */ + void PanicClient( const RMessage2& aMessage, TInt aPanic ) const; + +private: + void ReadObjFromMessageL( const RMessage2& aMessage, TInt aSlot, CUpnpObject* aObj ); + void ReadItemFromMessageL( const RMessage2& aMessage, TInt aSlot, CUpnpItem* aItem ); + void ReadObjFromMessageL( const RMessage2& aMessage, TInt aSlot, CUpnpItemList* aItemList ) ; + void ReadObjFromMessageL( const RMessage2& aMessage, TInt aSlot, + CUpnpBrowseCriteria* aBrowseCriteria ); + + // functions for various events from client + void EventMediaServerStatusL( const RMessage2& aMessage ); + void EventMediaServerStartL( const RMessage2& aMessage ); + void EventMediaServerStop( const RMessage2& aMessage ); + void EventMediaServerStopSilent( const RMessage2& aMessage ); + void EventMediaServerSetFriendlyNameL( const RMessage2& aMessage ); + void EventMediaServerRestartL( const RMessage2& aMessage ); + void EventMediaServerShareItemL( const RMessage2& aMessage ) ; + void EventMediaServerShareContainerL( const RMessage2& aMessage ) ; + void EventMediaServerShareItemListL( const RMessage2& aMessage ); + void EventMediaServerGetShareItemResultL( const RMessage2& aMessage ); + void EventMediaServerGetShareContainerResultL( const RMessage2& aMessage ); + void EventMediaServerGetShareItemListResultL( const RMessage2& aMessage ); + void EventMediaServerUnshareRootL( const RMessage2& aMessage ); + void EventMediaServerUnshareItemL( const RMessage2& aMessage ); + void EventMediaServerUnshareContainerL( const RMessage2& aMessage ); + void EventMediaServerGetSharedItemL( const RMessage2& aMessage ); + void EventMediaServerGetGetSharedItemResultL( const RMessage2& aMessage ); + void EventMediaServerGetSharedContainerL( const RMessage2& aMessage ); + void EventMediaServerGetGetSharedContainerResultL( const RMessage2& aMessage ); + void ReadIdsFromMessageL( const RMessage2& aMessage, TInt aSlot, RArray& aObjIds ); + void EventMediaServerUnshareItemListL( const RMessage2& aMessage ); + void EventMediaServerGetSharedItemListL( const RMessage2& aMessage ); + void EventMediaServerGetGetSharedItemListResultL( const RMessage2& aMessage ); + void EventMediaServerGetSharedContainerListL( const RMessage2& aMessage ); + void EventMediaServerGetGetSharedContainerListResultL( const RMessage2& aMessage ); + void EventMediaServerStartOfflineL( const RMessage2& aMessage ); + void EventMediaServerGetIpAndPortL( const RMessage2& aMessage ); + void EventSetUploadDirectoryL(const RMessage2& aMessage ); + void EventAddIconL( const RMessage2& aMessage ); + void EventUpdateIconL( const RMessage2& aMessage ); + void EventRemoveIconL( const RMessage2& aMessage ); + void EventRemoveIconsL( const RMessage2& aMessage ); + + void EventMediaServerShareReferenceL( const RMessage2& aMessage ); + void EventMediaServerShareReferenceListL( const RMessage2& aMessage ); + void EventMediaServerStatusChange( const RMessage2& aMessage ); + void EventMediaServerStatusChangeCancel( const RMessage2& aMessage ); + +private: + + /** @var iMediaServer pointer to Media Server */ + CUpnpMediaServer* iMediaServer; + HBufC8* iResponseBuffer; + TInt iRespLength; + TPckg iRespLengthPkg; + TInt iRespExecStatus; + TPckg iRespExecStatusPkg; + + CUpnpMediaServerEventHandler* iEventHandler; + RMessage2 iStatusMessage; + }; + +#endif // C_CUPNPMEDIASERVERSESSION_H