--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/clock2/clockengines/clockserver/server/inc/clockserver.h Tue Feb 02 10:12:19 2010 +0200
@@ -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 <e32base.h>
+
+// 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<CClkNitzSession>&
+ */
+ 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