diff -r 000000000000 -r 094583676ce7 PECengine/PresenceServer2/ServerSrc/MPEngServer.h --- /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 +#include +#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