upnp/upnpstack/upnpconnmanager/inc/upnpconnmanagersession.h
changeset 0 f5a58ecadc66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/upnp/upnpstack/upnpconnmanager/inc/upnpconnmanagersession.h	Tue Feb 02 01:12:20 2010 +0200
@@ -0,0 +1,139 @@
+/** @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:  defines CUpnpConnManagerSession
+*
+*/
+
+#ifndef C_CUPNPCONNMANAGERSESSION_H
+#define C_CUPNPCONNMANAGERSESSION_H
+
+#include <e32base.h>
+#include "upnpconnmanagercommon.h" 
+#include "upnpconnectionmanagernetworkevent.h"
+
+class CUpnpConnectionManager;
+class CUpnpConnManagerEngine;
+
+/**
+ * An instance of class CUpnpConnManagerSession is created for each client
+ * @since S60 5.0
+ */
+class CUpnpConnManagerSession : public CSession2
+    {
+
+public: // New methods
+
+    /**
+     * Create a CUpnpConnManagerSession object using two phase construction,
+     * and return a pointer to the created object
+     * @param aEngine the message handler engine
+     * @result pointer to new session
+     */
+    static CUpnpConnManagerSession* NewL( CUpnpConnManagerEngine& aEngine );
+
+    /**
+     * Create a CUpnpConnManagerSession object using two phase construction,
+     * and return a pointer to the created object
+     * (leaving a pointer to the object on the cleanup stack)
+     * @param anEngine the message handler engine
+     * @result pointer to new session
+     */
+    static CUpnpConnManagerSession* NewLC( CUpnpConnManagerEngine& aEngine );
+
+    /**
+     * Destroy the object and release all memory objects
+     */
+    virtual ~CUpnpConnManagerSession();
+
+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 );
+            
+    /**
+     * Cancels subscription for network events
+     */ 
+    void CancelSubscription();
+    
+    /**
+     * Called when WLan Lost occurs or someone stops the connection
+     */ 
+    void WLanLostOccuredL();
+    
+    /**
+     * Called when interface IP Address has changed
+     * @param new address
+     */ 
+    void AddressChangeOccuredL( TInetAddr& aAddr );
+    
+    /**
+     * Returns value of iSessionUseConnection variable
+     */ 
+    TBool SessionUseConnection();
+
+    /**
+     * Called when connection was closed by server
+     */ 
+    void ConnectionClosedL();
+
+private: // New methods
+
+    /**
+     * Perform the first phase of two phase construction
+     * @param aServer the message handler server
+     * @param aEngine the message handler engine
+     */
+    CUpnpConnManagerSession( CUpnpConnManagerEngine& aEngine );
+
+    /**
+     * Causes the client thread to panic
+     * @param panic code
+     */
+    void PanicClient( const RMessage2& aMessage, TInt aPanic ) const;
+
+private:
+
+    // Events service functions
+    TInt EventEnsureStartRConnectionL( const RMessage2& aMessage );
+    void EventIsRConnectionStartedL( const RMessage2& aMessage );
+    void EventSubscribeToNetworkEventL( const RMessage2& aMessage );
+    void EventCancelSubscribeToNetworkEvent( );        
+    void EventActiveIapL( const RMessage2& aMessage );               
+    void EventLocalAddressL( const RMessage2& aMessage );
+    
+    // Conpletions of NetworkEvent events
+    void WLanLostCompleteL();
+    void AddressChangeCompleteL();
+    void ConnectionClosedCompleteL();
+
+private:
+
+    /* @var iEngine Reference to the message handler engine */
+    CUpnpConnManagerEngine& iConnEngine;
+    
+    /* @var iSubsriberMessage subscriber's message */
+    RMessage2 iSubscriberMessage;
+    
+    /* @var iLastEvent the last network event */
+    TUpnpConnectionManagerNetworkEvent iLastEvent;
+
+    /* @var iSessionUseConnection Indicates if session called EnsureStart() */
+    TBool iSessionUseConnection;
+    
+    };
+
+#endif // C_CUPNPCONNMANAHERSESSION_H