upnpmediaserver/mediaserverengine/inc/upnpmediaserversession.h
changeset 0 7f85d04be362
--- /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