/*
* Copyright (c) 2007 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: CS Server main class. Co-ordinates server startup
* and shutdown and receives client requests.
*
*/
#ifndef __C_CS_SERVER_H
#define __C_CS_SERVER_H
// SYSTEM INCLUDE FILES
#include <mcsplugineventobserver.h>
// FORWARD DECLARATIONS
class MCsPluginEventObserver;
class CCsPluginInterface;
class CCsConversationCache;
class CCsConversationEntry;
class CCsSession;
class CCsContactsManager;
class CCsClientConversation;
// CLASS DECLARATION
/**
* CS Server main class. Co-ordinates server startup and shutdown
* and receives client requests.
*/
class CCsServer : public CServer2,
public MCsPluginEventObserver
{
public:
/**
* NewL
* Two phase construction
*/
static CCsServer* NewL();
/**
* Destructor
*/
~CCsServer();
/**
* NewSessionL
* Creates a server side session object
* Implements NewSessionL of CServer2
*
* @param aVersion, defines the version
* @param aMessage, instance of the PDU b/w server and client
* @return session instance
*/
CSession2
* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
/**
* ConversationCacheInterface
* Return the Conversation Cache interface instance
*
* @return CCsConversationCache instance
*/
CCsConversationCache* ConversationCacheInterface();
/**
* Get caching status
*/
TUint8 GetCachingStatus()
{
return iCsCachingStatus;
}
/* ------------ from MCsPluginEventObserver class ----------------------*/
/**
* AddConversations
* Handle Conversation event from Plugin, to handle new events
*
* @param aConversationEntryLists, List of conversation entries.
*/
void
AddConversations(
const RPointerArray<CCsConversationEntry>& aConversationEntryLists);
/**
* ModifyConversations
* event to modify existing conversation
*
* @param aConversationEntryLists, List of conversation entries.
*/
void
ModifyConversations(
const RPointerArray<CCsConversationEntry>& aConversationEntryLists);
/**
* DeleteConversations
* Handle delete Conversation event from Plugin
*
* @param aConversationEntryLists, List of conversation entries
* to be deleted.
*/
void
DeleteConversations(
const RPointerArray<CCsConversationEntry>& aConversationEntryLists);
/**
* RefreshConversations
* Refresh conversations from plugin.
*/
void RefreshConversations();
/**
* Caching completed.
*/
void CachingCompleted();
/**
* Caching error
* @param Error Code
*/
void CachingError(const TInt /*aError*/)
{
}
;
public:
/**
* NotifySessions
* Notify on-the-fly data changes to all sessions
*
* @param aConversation , conversation
* @param aEvent, event for the change
*/
void NotifySessions(CCsClientConversation* aConversation, TUint32 aEvent);
private:
/**
* Constructor
*/
CCsServer();
/**
* Second phase constructor
*/
void ConstructL();
private:
/**
* iContactsManager
* Contact manager instance
* Own.
*/
CCsContactsManager* iContactsManager;
/**
* iConversationPlugin
* A CS Plugin instance
* Own.
*/
CCsPluginInterface* iConversationPlugin;
/**
* iConversationCache
* Conversation Cache
* Own.
*/
CCsConversationCache* iConversationCache;
/**
* iCsCachingStatus
* Caching status
*/
TUint8 iCsCachingStatus;
};
#endif // __C_CS_SERVER_H