diff -r 5aadd1120515 -r b57382753122 clock2/clockengines/clockserver/server/inc/clockserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/clock2/clockengines/clockserver/server/inc/clockserver.h Wed Nov 03 17:12:22 2010 +0530 @@ -0,0 +1,125 @@ +/* +* Copyright (c) 2008 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 header file of the CClkSrvMain class. +* +*/ + +#ifndef __CLOCKSERVER_H__ +#define __CLOCKSERVER_H__ + +// System includes +#include + +// User includes +#include "clocktimesourceinterface.hrh" + +// Forward declarations +class CClkSrvSession; +class CClkSrvImpl; + +// Class declaration +/** +* @class CClkSrvMain +* @brief ClockServer server side module. +*/ +class CClkSrvMain : public CServer2 + { + public: // New functions + + /** + * @brief Two phased constructor + * @return CClkSrvMain* Pointer to an object of CClkSrvMain + */ + static CClkSrvMain* NewL(); + + /** + * @brief The destructor + */ + ~CClkSrvMain(); + + public: // New functions + + /** + * @brief Returns a reference to iSessionQue. + * @return TDblQue& + */ + TDblQue< CClkSrvSession >& SessionQue(); + + /** + * @brief Asks the session to notify the client about change in data. + * @param aWhatChanged This indicates what was changed. + * @param aWhoChanged The entity which caused the change. Will usually be the plug-in id. + * @param aNotification KErrNone if there was no error. + */ + void NotifyAboutChange( TChangedComponent aWhatChanged, TInt aWhoChanged, TInt aNotification ); + + /** + * @brief Returns the id of the currently loaded plugin. + * @param aPluginId This will be filled with the id of the active plugin read from cenrep. + * @return TInt An error code. + */ + TInt GetActivePluginL( TInt& aPluginId ) const; + + /** + * @brief Updates the id of the currently loaded plugin. + * @param aPluginId The id of the plugin with which the cenrep should be updated. + * @return TInt An error code. + */ + TInt SetActivePluginL( TInt aPluginId ); + + public: // From base classes + + /** + * @brief From CServer2, returns a new session for communication. + * @param aVersion The version object having the version info of the server + * @param aMessage of type RMessage + * @return CSession2* a Pointer to a CSession2 object. + */ + CSession2* NewSessionL( const TVersion& aVersion, const RMessage2& aMessage ) const; + + private: // New functions + + /** + * @brief Performs the second phase of construction + */ + void ConstructL(); + + /** + * @brief The C++ default constructor + */ + CClkSrvMain( TInt aPriority ); + + /** + * @brief Performs the restoration operations like activating plugins that were previously activated and so on. + */ + void RestoreStateL(); + + private: // Data + + /** + * @var iSessionQue + * @brief Is a doubly linked list of type CClkSrvSession + */ + TDblQue< CClkSrvSession > iSessionQue; + + /** + * @var iClkSrvImpl + * @brief Is a pointer to an object of CClkSrvImpl. Only one instance, used by all the sessions. + */ + CClkSrvImpl* iClkSrvImpl; + }; + +#endif // __CLOCKSERVER_H__ + +// End of file