diff -r 000000000000 -r 7f85d04be362 upnpavcontroller/upnpavcontrollerserver/inc/upnpavcontrollersession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpavcontroller/upnpavcontrollerserver/inc/upnpavcontrollersession.h Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,124 @@ +/* +* Copyright (c) 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: AV Controller server session +* +*/ + + + + + + +#ifndef C_CUPNPAVCONTROLLERSESSION_H +#define C_CUPNPAVCONTROLLERSESSION_H + +// INCLUDES +#include "upnpavcontrollerglobals.h" + +#include +#include "upnpconnectionmonitorobserver.h" + + +// FORWARD DECLARATIONS +class CUpnpAVControllerServer; +class CUPnPAVControllerImpl; +class CUpnpAVDeviceExtended; +class CUpnpDevice; + +// CLASS DECLARATION + +/** + An instance of class CUpnpAVControllerSession is created for each client + */ +class CUpnpAVControllerSession : public CSession2, + public MUPnPConnectionMonitorObserver +{ + +public: // New methods + + /** + * Create a CUpnpAVControllerSession object using two phase construction, + * and return a pointer to the created object + * @result pointer to new session + */ + static CUpnpAVControllerSession* NewL( + CUpnpAVControllerServer& aServer ); + + /** + * Create a CUpnpAVControllerSession object using two phase construction, + * and return a pointer to the created object + * @result pointer to new session + */ + static CUpnpAVControllerSession* NewLC( + CUpnpAVControllerServer& aServer ); + + /** + * Destroy the object and release all memory objects + */ + virtual ~CUpnpAVControllerSession(); + + +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 ); +public: // From MUPnPConnectionMonitorObserver + + /** + * Handles UPnP device discoveries. + * @since Series 60 2.6 + * @param aDevice Device that is discovered. + */ + void DeviceDiscoveredL( CUpnpAVDeviceExtended& aDevice ); + + /** + * Handles UPnP device disappears. + * @since Series 60 2.6 + * @param aDevice Device that disappeared. + */ + void DeviceDisappearedL( CUpnpAVDeviceExtended& aDevice ); + + + void ConnectionLost(); + +private: // New methods + + /** + * Perform the first phase of two phase construction + */ + CUpnpAVControllerSession( CUpnpAVControllerServer& aServer ); + + /** + * Perform the second phase construction of the object + */ + void ConstructL() ; + + /** + * Causes the client thread to panic + * @param panic code + */ + void PanicClient( const RMessage2& aMessage, TInt aPanic ) const; + +private: + + /** @var iMediaServer pointer to Media Server */ + + CUpnpAVControllerServer& iAVControllerServer; + CUPnPAVControllerImpl* iAVController; +}; + +#endif // C_CUPNPAVCONTROLLERSESSION_H \ No newline at end of file