--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/satengine/SatServer/Engine/inc/CSatSSession.h Tue Feb 02 01:11:09 2010 +0200
@@ -0,0 +1,183 @@
+/*
+* Copyright (c) 2002-2009 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: The Sat Server session manages a connection to a client and
+* handles client requests.
+*
+*/
+
+#ifndef CSATSSESSION_H
+#define CSATSSESSION_H
+
+// INCLUDES
+#include <e32svr.h>
+
+// FORWARD DECLARATIONS
+class TSatEventMediator;
+class CSatSServer;
+class CSatSSubSession;
+class MSatUiSession;
+class CSatSServer;
+class MSatApi;
+class MThreadDeathNotifier;
+class CSatIconHandler;
+class MSatSIconAPI;
+// CLASS DECLARATION
+
+/**
+* CSatSSession represents the server-side session object.
+*
+* @lib SatEngine.lib
+* @since Series 60 3.0
+*/
+class CSatSSession : public CSession2
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ * @param aServer SatServer class
+ * @param aEventMediator Event mediator class
+ * @param aUsatApi An USat API interface
+ * @param aThreadDeathNotifier ThreadDeath notifier interface
+ */
+ static CSatSSession* NewL( CSatSServer* aServer,
+ TSatEventMediator& aEventMediator,
+ MSatApi& aUsatApi,
+ MThreadDeathNotifier& aThreadDeathNotifier );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CSatSSession();
+
+ public: // Functions from base classes
+
+ /**
+ * From CSession2 Handles an incoming message.
+ * @param aMessage Handle to the client message.
+ */
+ void ServiceL( const RMessage2 &aMessage );
+
+ public: // New functions
+
+ /**
+ * Gives pointer of ui sub session interface. May be null.
+ * @return Pointer of ui subsession interface.
+ */
+ MSatUiSession* UiSubSession();
+
+ /**
+ * Closes icon sub-session.
+ * @param aMessage Handle to the client message.
+ * @return TRUE if subsession exists. Otherwise return FALSE.
+ */
+ TBool CloseSubSession( const RMessage2& aMessage );
+
+ /**
+ * Gets the sub-session using handle.
+ * @param aHandle Sub-session handle.
+ * @return Sub-session. NULL if not found.
+ */
+ CSatSSubSession* GetSubSessionFromHandle( TInt aHandle ) const;
+
+ /**
+ * Panic the client.
+ * @param aMessage The panic message
+ * @param aPanic The panic code.
+ */
+ void PanicClient( const RMessage2& aMessage, TInt aPanic ) const;
+
+ /**
+ * Notifies Thread death monitor for thread is dying
+ */
+ void NotifyThreadDeathMonitor();
+
+ /**
+ * Gets pointer to SatServer
+ * @param Pointer to SatServer
+ */
+ CSatSServer* SatServer();
+
+ /**
+ * Tells that UI Sub session is closed.
+ */
+ void UiSessionClosed();
+
+ /**
+ * Creates icon handler and returns it to icon sub session
+ * return Pointer to created icon handler
+ */
+ MSatSIconAPI* CreateIconHandlerL();
+
+ private: // New functions
+
+ /**
+ * Adds sub session to container. Sub session is deleted
+ * if leave occurs.
+ * @param aSubSession A Session that is needed to be added
+ * @param aMessage An instance of RMessage2
+ */
+ void AddSubSessionL( CSatSSubSession* aSubSession,
+ const RMessage2& aMessage );
+
+ private: // Constructors
+
+ /**
+ * ConstrucL
+ */
+ void ConstructL();
+
+ /**
+ * C++ default constructor.
+ * @param aServer SatServer class
+ * @param aEventMediator Event mediator class
+ * @param aUsatApi An USat API interface
+ * @param aThreadDeathNotifier ThreadDeath notifier interface
+ */
+ CSatSSession( CSatSServer* aServer,
+ TSatEventMediator& aEventMediator,
+ MSatApi& aSatApi,
+ MThreadDeathNotifier& aThreadDeathNotifier );
+
+ private: // Data
+
+ // A reference to the server.
+ CSatSServer* iSatServer;
+
+ // Event mediator reference
+ TSatEventMediator& iEventMediator;
+
+ // Sat api
+ MSatApi& iSatApi;
+
+ // Generates a unique handle for subsession.
+ CObjectIx* iSubSessionIx;
+
+ // Container for sub-sessions.
+ CObjectCon* iSubSessionCon;
+
+ // Interface for ui sub session
+ MSatUiSession* iUiSubSession;
+
+ // Thread death monitor notifier
+ MThreadDeathNotifier& iThreadDeathNotifier;
+
+ // Indicates is SatUiSubSession closed
+ TBool iSatUiSubSessionClosed;
+
+ };
+
+#endif // CSATSSESSION_H
+
+// End of File