--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/hwresourcesmgr/server/inc/HWRMServer.h Tue Feb 02 00:53:00 2010 +0200
@@ -0,0 +1,269 @@
+/*
+* Copyright (c) 2006-2009 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:
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalTechnology
+*/
+
+#ifndef HWRMSERVER_H
+#define HWRMSERVER_H
+
+// INCLUDES
+#include <e32svr.h>
+#include "HWRMClientServer.h"
+#include "HWRMClient.h" // THWRMResourceType
+
+// CONSTANTS
+// None
+
+// MACROS
+// None
+
+// DATA TYPES
+// None
+
+// FUNCTION PROTOTYPES
+// None
+
+// FORWARD DECLARATIONS
+class CHWRMPluginHandler;
+class CHWRMReservationHandler;
+class CHWRMVibraCommonService;
+class CHWRMVibraCommonData;
+class CHWRMLightCommonData;
+class CHWRMFmTxCommonData;
+class CHWRMFmTxStateUtility;
+class CHWRMPowerStatePluginHandler;
+class CHWRMPowerCommonData;
+
+// CLASS DECLARATION
+
+/**
+* Hardware Resource Manager server implementation
+*
+*/
+class CHWRMServer : public CPolicyServer
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Creates a new server.
+ * @param aPriority Priority of the server.
+ * @return A pointer to the created object.
+ */
+ static CHWRMServer* NewL( const TInt aPriority );
+
+ /**
+ * Creates a new server. Newly created instance is left in the cleanup stack.
+ * @param aPriority Priority of the server.
+ * @return A pointer to the created object.
+ */
+ static CHWRMServer* NewLC( const TInt aPriority );
+
+ /**
+ * Destructor.
+ */
+ virtual ~CHWRMServer();
+
+ /**
+ * Panics client thread.
+ *
+ * @param aMessage Message that is being handled
+ * @param aPanic Panic type
+ */
+ static void PanicClient(const RMessage2& aMessage, THWRMPanic aPanic);
+
+ /**
+ * Get pointer to plugin handler of specified type.
+ * Returns NULL if specified handler is not initialized yet.
+ *
+ * @param aType Resource type
+ * @return pointer to correct plugin handler
+ */
+ CHWRMPluginHandler* GetPluginHandler(THWRMResourceType aType);
+
+ /**
+ * Get pointer to reservation handler of specified type.
+ * Returns NULL if specified handler is not initialized yet.
+ *
+ * @param aType Resource type
+ * @return pointer to correct reservation handler
+ */
+ CHWRMReservationHandler* GetReservationHandler(THWRMResourceType aType);
+
+ /**
+ * Get pointer to vibra common service.
+ *
+ * @return pointer to vibra common service
+ * Returns NULL if resource not supported.
+ */
+ CHWRMVibraCommonService* GetVibraCommonService();
+
+
+
+ /**
+ * Get pointer to vibra common data.
+ *
+ * @return pointer to vibra common data
+ * Returns NULL if resource not supported.
+ */
+ CHWRMVibraCommonData* GetVibraCommonData();
+
+ /**
+ * Get pointer to light common data.
+ *
+ * @return pointer to light common data.
+ * Returns NULL if resource not supported.
+ */
+ CHWRMLightCommonData* GetLightCommonData();
+
+ /**
+ * Get pointer to Power common data.
+ *
+ * @return pointer to Power common data.
+ * Returns NULL if resource not supported.
+ */
+ CHWRMPowerCommonData* GetPowerCommonData();
+
+ /**
+ * Get pointer to FmTx common data.
+ *
+ * @return pointer to FmTx common data.
+ * Returns NULL if resource not supported.
+ */
+ CHWRMFmTxCommonData* GetFmTxCommonData();
+
+ /**
+ * This method is called by CActive if RunL leaves.
+ *
+ * @param aError Symbian error code.
+ * @return Returns KErrNone if the error was handled or aError otherwise.
+ */
+ //TInt RunError(TInt aError);
+
+
+ public: // New functions
+
+ public: // Functions from base classes
+
+ protected: // New functions
+
+ protected: // Functions from base classes
+
+ private:
+
+ /**
+ * C++ constructor.
+ */
+ CHWRMServer( const TInt aPriority,
+ const TServerType aType = EUnsharableSessions );
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * Creates a new session when client connects.
+ * @param aVersion Version
+ * @param aMessage 'connect' message from the client
+ * @return Pointer to created session or leaves with codes
+ * KErrNotSupported if versions does not match
+ * KErrNoMemory if creation of new session fails.
+ */
+ CSession2* NewSessionL( const TVersion& aVersion,
+ const RMessage2& aMessage ) const;
+ /**
+ * Panics the server thread
+ * @param aCategory Panicer's id
+ * @param aPanic Reason of panic
+ * @return void
+ */
+ void Panic( const TDesC& aCategory, const TInt aReason );
+
+ /**
+ * Method to initialize vibra.
+ * Vibra is not initialized in ConstructL in order to
+ * speed up the startup.
+ */
+ void InitVibra();
+
+ /**
+ * Method to initialize FM Tx.
+ * FM Tx is not initialized in ConstructL in order to
+ * speed up the startup.
+ */
+ void InitFmTxL();
+
+ /**
+ * Method to initialize Power.
+ * Power is not initialized in ConstructL in order to
+ * speed up the startup.
+ */
+ void InitPower();
+
+
+ public: // Data
+
+ protected: // Data
+
+ private: // Data
+
+ // Server has one plugin handler for each hardware resource
+ CHWRMPluginHandler* iVibraPluginHandler;
+ CHWRMPluginHandler* iLightPluginHandler;
+ CHWRMPowerStatePluginHandler* iPowerStatePluginHandler;
+ CHWRMPluginHandler* iFmTxPluginHandler;
+ CHWRMPluginHandler* iFmTxWatcherPluginHandler; // Own.
+ CHWRMPluginHandler* iPowerPluginHandler;
+
+ // Server has one reservation handler for each hardware resource
+ CHWRMReservationHandler* iVibraReservationHandler;
+ CHWRMReservationHandler* iLightReservationHandler;
+ CHWRMReservationHandler* iFmTxReservationHandler;
+
+ // Server has one common vibra service instance for all vibra sessions
+ CHWRMVibraCommonService* iVibraCommonService;
+
+ // Server has one common data instance for each hardware resource
+ CHWRMVibraCommonData* iVibraCommonData;
+ CHWRMLightCommonData* iLightCommonData;
+ CHWRMFmTxCommonData* iFmTxCommonData;
+ CHWRMFmTxStateUtility* iFmTxStateUtility;
+ CHWRMPowerCommonData* iPowerCommonData;
+
+ TBool iVibraInitAttempted; // If ETrue, vibra initialization has been tried before.
+ TBool iFmTxInitAttempted; // If ETrue, FM Tx initialization has been tried before.
+ TBool iPowerInitAttempted; // If ETrue, power initialization has been tried before.
+ TInt iPluginTimeout; // Stores plugin timeout for vibra initialization
+
+
+ public: // Friend classes
+
+ protected: // Friend classes
+
+ private: // Friend classes
+ //friend class CHWRMSession;
+ //friend class CHWRMPluginHandler;
+ };
+
+#endif // HWRMSERVER_H
+
+// End of File