commsprocess/commsrootserverconfig/configurator/src/c32startserv.h
changeset 0 dfb7c4ff071f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commsprocess/commsrootserverconfig/configurator/src/c32startserv.h	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,98 @@
+// Copyright (c) 2005-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:
+//
+
+#if !defined(__C32STARTSERV_H__)
+#define __C32STARTSERV_H__
+
+#include <e32base.h>
+#include "c32start.h"
+
+
+class CRsConfiguratorServer : public CPolicyServer
+/** The main class implementing the Configurator server.
+@internalComponent
+*/
+	{
+	public:
+	CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
+
+	public :
+	
+	static CRsConfiguratorServer* NewLC(CCommsProcessStarter& aCommsProcess);
+	~CRsConfiguratorServer();
+	static CRsConfiguratorServer* NewL(CCommsProcessStarter& aCommsProcess);
+
+	TInt EnumerateModules(const TCFGroupNameF& aGroupName, TInt& aStartAt, TCFModuleNameF& aName);
+	TInt LoadCpm(const TCFModuleNameF& aName,const RMessage2& aMessage);
+	TInt GetModuleIniData(const TCFModuleNameF& aName, TDes8& aIniData,TInt& aActualSize);//to be deleted
+	TInt GetModuleIniData(const TCFModuleNameF& aName, const RMessage2& aMessage);
+	TInt UnLoadCpm(const TCFModuleNameF& aName, const RMessage2& aMessage);
+	TInt CancelLoadCpm(const TCFModuleNameF& aName);
+	TInt CancelUnLoadCpm(const TCFModuleNameF& aName);
+
+	private:
+	RPointerArray<CModuleRef>& GetModulesList() // Get the modules listed.
+		{
+		return iCommsProcess.GetModulesList();
+		};
+
+	protected:
+	CRsConfiguratorServer(CCommsProcessStarter& aCommsProcess);
+	void ConstructL();
+	static const CPolicyServer::TPolicy Policy;
+
+	private:
+	CModuleRef* FindCpm(const TCFModuleNameF& aName);
+	CCommsProcessStarter& iCommsProcess;
+	static const TUint iPolicyRangeCount;
+	static const TInt iPolicyRanges[];
+	static const TUint8 iPolicyElementsIndex[];
+	static const CPolicyServer::TPolicyElement iPolicyElements[];
+	static const CPolicyServer::TPolicy iPolicy;
+	// Debug build logging
+	__FLOG_DECLARATION_MEMBER;
+	};
+
+class CRsConfiguratorServerSession : public CSession2
+/** Session object as required by the client/server framework. 
+Implements the "Secure IPC" API for configurator server.
+@internalComponent 
+*/
+	{
+	public:
+	CRsConfiguratorServerSession(const CRsConfiguratorServer* aConfiguratorServer);
+
+	  //service request
+	void ServiceL(const RMessage2& aMessage);
+
+	 //services available 
+	private:
+	TInt LoadCpm(const RMessage2& aMessage);
+	TInt UnloadCpm(const RMessage2& aMessage);
+	TInt CancelLoadCpm(const RMessage2& aMessage);
+	TInt CancelUnloadCpm(const RMessage2& aMessage);
+	TInt EnumerateModules(const RMessage2& aMessage);
+	TInt GetModuleIniData(const RMessage2& aMessage);
+	
+	private:
+	CRsConfiguratorServer* iConfiguratorServer;
+	// Debug build logging
+	__FLOG_DECLARATION_MEMBER;
+	
+	};
+
+
+#endif
+