rtsecuritymanager/rtsecuritymanagerserver/inc/rtsecmgrserver.h
changeset 57 61b27eec6533
parent 45 7aa6007702af
--- a/rtsecuritymanager/rtsecuritymanagerserver/inc/rtsecmgrserver.h	Fri Apr 16 15:54:49 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,398 +0,0 @@
-/*
-* Copyright (c) 2003-2005 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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:       Core Runtime Security Manager Server Class
- *
-*/
-
-
-
-
-
-
-
-#ifndef C_CRTSECMGRSERVER_H
-#define C_CRTSECMGRSERVER_H
-
-#include <rtsecmgrcommondef.h>
-#include "rtsecmgrserverdef.h"
-#include "rtsecmgrpolicy.h"
-#include "rtsecmgrstore.h"
-#include "rtsecmgrpolicymanager.h"
-#include "rtsecmgrscriptmanager.h"
-
-class CPolicyManager;
-class CScriptManager;
-class CSecMgrStore;
-
-//needed for creating server thread.
-const TUint KDefaultHeapSize=0x10000;
-const TUint KShutDownDelay = 2000000; // Aprox 2 sec
-
-/*
- * Shutdown timer class
- *
- * @exe rtsecmgrserver.exe 
- */
-class CShutDown : public CTimer
-	{
-public:
-	inline CShutDown();
-	inline void ConstructL();
-	inline void Start();
-	inline virtual ~CShutDown();
-	
-private:
-	inline void RunL();
-	};
-
-#include "rtsecmgrshutdown.inl"
-	
-#include "rtsecmgrserverpolicy.inl"	
-	
-/*
- CRTSecMgrServer class
-
- Represents the server.
- 
- The server starts with the first client connect call.
- Start includes setting up active scheduler, the server active object,
- and the object container index which produces object object containers for each session.
- */
-class CRTSecMgrServer : public CPolicyServer //CServer2 //CPolicyServer
-	{
-public:
-	/* 
-	 * Creates a new session with the server; 
-	 * 
-	 * @param aVersion const TVersion& version information of security manager server
-	 * @param aMessage const RMessage2& server's current message
-	 * 
-	 * @return CSession2* pointer to base instance of created server session
-	 */
-	CSession2* NewSessionL(const TVersion& aVersion, const RMessage2& aMessage) const;
-
-	/* 
-	 * Two-phased constructor. Creates a new server object.
-	 * 
-	 * @param aActiveObjectPriority TPriority priorty of the server process
-	 * 
-	 * @return CRTSecMgrServer* pointer to new instance of CRTSecMgrServer
-	 */
-	static CRTSecMgrServer* NewL(CActive::TPriority aActiveObjectPriority);
-	
-	/* 
-	 * Two-phased constructor. Creates a new server object and leaves
-	 * the created instance on the cleanupstack.
-	 * 
-	 * @param aActiveObjectPriority TPriority priorty of the server process
-	 * 
-	 * @return CRTSecMgrServer* pointer to new instance of CRTSecMgrServer
-	 */
-	static CRTSecMgrServer* NewLC(CActive::TPriority aActiveObjectPriority);
-
-	/* 
-	 * Utility method to panic the server
-	 * 
-	 * @param aPanic TSecMgrServPanic Panic error code
-	 * 
-	 */
-	inline static void PanicServer(TSecMgrServPanic aPanic);
-
-	/* 
-	 * Returns an object container, and guaranteed
-	 * to produce object containers with unique ids
-	 * within the server
-	 * 
-	 * This method is called by a new session to create 
-	 * a container 
-	 * 
-	 * 
-	 * @return CObjectCon* a new object container
-	 */
-	CObjectCon* NewContainerL();
-
-	/* 
-	 * Adds a new server side session
-	 * 
-	 */
-	inline void AddSession();
-	
-	/* 
-	 * Removes a server side session by decrementing
-	 * the session count.
-	 * 
-	 * If the session count reaches zero, this method
-	 * initiates server shut down timer
-	 * 
-	 */
-	inline void RemoveSession();
-	
-	/*
-	 * Removes a container object from the container
-	 * index
-	 * 
-	 * @param aContainer CObjectCon* pointer to containter object
-	 * to be removed
-	 */
-	inline void RemoveFromContainerIx(CObjectCon* aContainer);
-
-	/*
-	 * Generates a new script identifier
-	 * 
-	 * @param aExecID TExecutableID& output generated script identifier
-	 *
-	 * @return KErrNone if generation of script identifier successful
-	 */
-	inline TInt ReadCounter(TExecutableID& aExecID);
-
-	/*
-	 * Registers a new policy. The actual task is performed by
-	 * server side session.
-	 * 
-	 * @param aPolicyID TPolicyID policy identifier
-	 * @param aDomains const RProtectionDomains& domains to be added
-	 *
-	 * @return KErrNone if generation of script identifier successful
-	 */	
-	inline void AddPolicyL(TPolicyID aPolicyID, const RProtectionDomains& aDomains, RAliasGroup& aAliasGroup);
-	
-	/*
-	 * Checks whether policy with the passed policy identifier exists.
-	 * The actual task is performed by server side session.
-	 * 
-	 * @param aPolicyID TPolicyID policy identifier
-	 * 
-	 * @return EFalse if policy identifier does not exist; Otherwise ETrue
-	 */
-	inline TBool IsValidPolicy(TPolicyID aPolicyID) const;
-	
-	/*
-	 * Removes an existing policy with the passed policy identifier.
-	 * The actual task is performed by server side session.
-	 * 
-	 * @param aPolicyID TPolicyID policy identifier
-	 * 
-	 * @return KErrNone if removal of policy is successful; Otherwise one
-	 * of system wide error codes
-	 */
-	inline TInt RemovePolicy(TPolicyID aPolicyID);
-
-	/*
-	 * Register a runtime script with security manager.
-	 * The actual task is performed by server side session.
-	 * 
-	 * @param aPolicyID TPolicyID policy identifier
-	 * @param aHashValue const TDesC& hashvalue of script
-	 * 
-	 * @return TExecutableID valid script identifier is registration
-	 * is successful; otherwise one of system wide error codes
-	 * 
-	 */
-	inline TExecutableID
-			RegisterScript(TPolicyID aPolicyID, const TDesC& aHashValue);
-	
-	/*
-	 * Register a runtime script with security manager.
-	 * The actual task is performed by server side session.
-	 * 
-	 * @param aPolicyID TPolicyID policy identifier
-	 * 
-	 * @return TExecutableID valid script identifier is registration
-	 * is successful; otherwise one of system wide error codes
-	 * 
-	 */
-	inline TExecutableID
-			RegisterScript(TPolicyID aPolicyID);
-	
-	/*
-	 * UnRegisters a runtime script from security manager.
-	 * The actual task is performed by server side session.
-	 * 
-	 * @param aExecID TExecutableID script identifier
-	 * @param aPolicyID TPolicyID policy identifier
-	 * 
-	 * 
-	 */
-	inline void UnRegisterScriptL(TExecutableID aExecID, TPolicyID aPolicyID);
-	
-	/*
-	 * Gets script data structure. The script identifier
-	 * is specified in the input script object
-	 * 
-	 * @param aScript CScript& Input output script object
-	 * 
-	 * @return KErrNone if script object is successsfully internalized
-	 * 
-	 */
-	inline TInt GetCapabilityInfo(CScript& aScript);
-	
-	/*
-	 * Gets script data structure. The script identifier
-	 * is specified in the input script object
-	 * 
-	 * @param aPolicyID TPolicyID  policy identifier
-	 * @param aExecID TExecutableID script identifier
-	 * @param aScript CScript& Input output script object
-	 * 
-	 * @return KErrNone if script object is successsfully internalized
-	 * 
-	 */
-	TInt GetCapabilityInfo(TPolicyID aPolicyID, TExecutableID aExecID,
-			CScript& aScript);
-	
-	/*
-	 * Utility method to get the name of the script file
-	 * 
-	 * @param aPolicyID TPolicyID  policy identifier
-	 * @param aScriptFile TFileName& input output name of script file
-	 * 
-	 * @return KErrNone if script filename is successsfully fetched
-	 * 
-	 */
-	inline TInt GetScriptFile(TExecutableID aExecID, TDes& aScriptFile);
-
-	/*
-	 * Utility method to update the permanently allowed or denied
-	 * permissions for the script object
-	 * 
-	 * @param aExecID TExecutableID script identifier of script object whose
-	 * permanent permissions are modified
-	 * @param aPermGrant TPermGrant  permanently allowed permissions
-	 * @param aPermDenied TPermGrant permanently denied permissions
-	 * 
-	 */
-	void UpdatePermGrantL(TExecutableID aExecID, TPermGrant aPermGrant,
-			TPermGrant aPermDenied);
-	
-	/*
-     * Utility method to update the permanently allowed or denied
-     * permissions for the script object
-     * 
-     * @param aExecID TExecutableID script identifier of script object whose
-     * permanent permissions are modified
-     * @param aPermGrant TPermGrant  permanently allowed permissions
-     * @param aPermDenied TPermGrant permanently denied permissions
-     * 
-     */
-    void UpdatePermGrantL(TExecutableID aExecID, RProviderArray aAllowedProviders,
-            RProviderArray aDeniedProviders);
-	/*
-	 * Utility method to create a backup for the policy file
-	 * 
-	 * @param aPolicyID TPolicyID policy identifier for the file
-	 * getting backed up
-	 * @return KErrNone if backupfile is successsfully created
-	 *
-	 */
-	inline TInt BackupFile(TPolicyID aPolicyID);
-	
-	/*
-	 * Utility method to remove the backup file created
-	 * 
-	 * @param aPolicyID TPolicyID policy identifier for the file
-	 * whose backup is getting removed
-	 * @return KErrNone if backup file is successsfully removed
-	 *
-	 */
-	inline TInt RemoveTempPolicy(TPolicyID aPolicyID);
-	
-	/*
-	 * Utility method to restore the backup file created if update fails
-	 * 
-	 * @param aPolicyID TPolicyID policy identifier for the file
-	 * which is restored back
-	 * @return KErrNone if backup file is successsfully restored
-	 *
-	 */
-	inline TInt RestoreTempPolicy(TPolicyID aPolicyID);
-	
-	/*
-	 * Utility method to get the policy file information
-	 * 
-	 * @param aPolicyID TPolicyID policy identifier for the file
-	 * which is restored back
-	 * @return CPolicy* pointer to instance of Cpolicy stored in CPolicyManager 
-	 *
-	 */
-	inline CPolicy* ReturnPolicyInfo(TPolicyID aPolicyID);
-	
-	/*
-	 * Utility method to store the policy file information
-	 * 
-	 * @param aPolicy CPolicy policy information from parser
-	 * 
-	 */
-	inline void StorePolicyL(const CPolicy& aPolicy);
-
-	
-private:
-	/*
-	 *  Constructor
-	 */
-	inline CRTSecMgrServer(CActive::TPriority aActiveObjectPriority);
-
-	/*
-	 *  Second phase constructor
-	 * 
-	 */
-	void ConstructL();
-
-	/*
-	 *  Server destructor
-	 * 
-	 */
-	~CRTSecMgrServer();
-
-private:
-
-	/*
-	 *  shutdown timer object
-	 * 
-	 */
-	CShutDown iShutDown;
-	
-	/*
-	 *  Session counter
-	 * 
-	 */
-	TInt iSessionCount;
-	
-	/*
-	 *  Session container index
-	 * 
-	 */
-	CObjectConIx* iContainerIndex;
-
-	/*
-	 *  Reference to policy manager
-	 * 
-	 */
-	CPolicyManager* iPolicyMgr;
-	
-	/*
-	 *  Reference to script manager
-	 * 
-	 */
-	CScriptManager* iScriptMgr;
-	
-	/*
-	 *  Reference to security manager store
-	 * 
-	 */
-	CSecMgrStore* iSecMgrDb;
-	};
-
-#include "rtsecmgrserver.inl"
-	
-#endif //C_CRTSECMGRSERVER_H