--- /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 <e32base.h>
+
+
+// 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<TInt>& 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<TInt> iRespLengthPkg;
+ TInt iRespExecStatus;
+ TPckg<TInt> iRespExecStatusPkg;
+
+ CUpnpMediaServerEventHandler* iEventHandler;
+ RMessage2 iStatusMessage;
+ };
+
+#endif // C_CUPNPMEDIASERVERSESSION_H