PECengine/PresenceServer2/ServerSrc/MPEngServer.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/PresenceServer2/ServerSrc/MPEngServer.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2002 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:  Presence Server abstract interface
+*
+*/
+
+
+
+#ifndef MPENGSERVER_H
+#define MPENGSERVER_H
+
+//  INCLUDES
+
+#include <e32def.h>
+#include <bamdesca.h>
+#include "TPEngServerMessages.h"
+
+// FORWARD DECLARATIONS
+class CPEngCSPSessManager;
+class CPEngSessionSlotId;
+class CPEngSubSession;
+
+// CLASS DECLARATION
+
+/**
+ *  Presence Server abstract interface
+ *
+ *  @lib PEngServer2
+ *  @since 3.0
+ */
+class MPEngServer
+    {
+    public: // New functions used by the server session
+        /**
+         *  Inform server about created session,
+         *  Access count is increased
+         *
+         *  @since 3.0
+         */
+        virtual void SessionCreated() = 0;
+
+        /**
+         *  Inform server about closing of the session
+         *  Access count is decreased
+         *
+         *  @since 3.0
+         */
+        virtual void SessionDied() = 0;
+
+
+        /**
+         *  Add subsession to the container
+         *
+         *  @since 3.0
+         *  @param aSubSession sub session instance
+         */
+        virtual void AddSubSessionL( CPEngSubSession& aSubSession ) = 0;
+
+        /**
+         *  Remove subsession from the container
+         *
+         *  @since 3.0
+         *  @param aSubSession subsession instance
+         */
+        virtual void RemoveSubSessionL( CPEngSubSession& aSubSession ) = 0;
+
+    public: // New functions used by the server Sub-Session
+
+        /**
+         *  Session Manager
+         *	If session manager is not active it is created
+         *
+         *  @since 3.0
+         *  @param aSessionId session slot Id
+         *  @return session Manager
+         */
+        virtual CPEngCSPSessManager* CSPSessionManagerLC(
+            CPEngSessionSlotId& aSessionId ) = 0;
+
+    public:	// New functions used by the Session Manager
+
+        /**
+         *  Remove Session Manager from the server
+         *
+         *  @since 3.0
+         *  @param aManager session manager to be removed
+         */
+        virtual void RemoveCSPSessManager(
+            CPEngCSPSessManager* aManager ) = 0;
+
+
+        /**
+         *  Session is opened
+         *  Informs server that session slot is opened
+         *  Plugin server is informed about change is needed
+         *  @since 3.0
+         */
+        virtual void SessionOpened() = 0;
+
+        /**
+         *  Session is closed
+         *  Informs server that session slot is closed
+         *  Plugin server is informed about change is needed
+         *  @since 3.0
+         */
+        virtual void SessionClosed() = 0;
+
+    protected:  //Destructor
+
+        /**
+          * Virtual inline destructor.
+          *
+          * Server cannot be destroyed through this interface
+          * destroyed using this interface.
+          */
+        virtual ~MPEngServer() {};
+
+    };
+
+#endif      // MPENGSERVER_H
+
+// End of File