diff -r 7aa6007702af -r 61b27eec6533 rtsecuritymanager/rtsecuritymanagerserver/inc/rtsecmgrscriptmanager.h --- a/rtsecuritymanager/rtsecuritymanagerserver/inc/rtsecmgrscriptmanager.h Fri Apr 16 15:54:49 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ -/* -* Copyright (c) 2007-2008 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: Definition of script manager class - * -*/ - - - - - - -#ifndef C_RTSECMGRSCRIPTMANAGER_H -#define C_RTSECMGRSCRIPTMANAGER_H - -#include -#include -#include -#include "rtsecmgrdef.h" -#include "rtsecmgrstore.h" - -//Forward declarations -class CSecMgrStore; -class CPolicyManager; - -typedef RPointerArray RScripts; - -/* - * Models the cache to maintain the list of registered script - * data. Provides operations to register script, de-register - * script, query script related information. - * - * This class abstracts the underlying persistent storage to - * store script related data. - * - * @see CSecMgrStore - * @see CPolicyManager - * @see CScript - * - * @exe rtsecmgrserver.exe - */ -class CScriptManager : public CBase - { -public: - /** - * Two-phased constructor - * - * Constructs a CScriptManager instance - * - * @param aSecMgrDB CSecMgrStore* reference to security manager store - * @param aPolicyMgr CPolicyManager* reference to policymanager instance - * - * @return CScriptManager* pointer to an instance of CScriptManager - */ - static CScriptManager* NewL(CSecMgrStore* aSecMgrDB, - CPolicyManager* aPolicyMgr); - - /** - * Two-phased constructor - * - * Constructs a CScriptManager instance and leaves the created instance - * on the cleanupstack - * - * @param aSecMgrDB CSecMgrStore* reference to security manager store - * @param aPolicyMgr CPolicyManager* reference to policymanager instance - * - * @return CScriptManager* pointer to an instance of CScriptManager - */ - static CScriptManager* NewLC(CSecMgrStore* aSecMgrDB, - CPolicyManager* aPolicyMgr); - - /** - * Destructor - * - * Performs clean-up of transient script store cache - * - */ - virtual ~CScriptManager(); - - /** - * Registers a script based on a policy identified by - * input policy identifier with security manager - * - * @param aPolicyID TPolicyID input policy identifier of the script - * - * @return TExecutableID script identifier of the registered script - */ - TExecutableID - RegisterScript(TPolicyID aPolicyID); - - /** - * Registers a script with hashvalue based on a policy identified by - * input policy identifier with security manager. - * - * @param aPolicyID TPolicyID input policy identifier of the script - * @param aHashValue const TDesC& hashValue of the script - * - * @return TExecutableID script identifier of the registered script - */ - TExecutableID - RegisterScript(TPolicyID aPolicyID, const TDesC& aHashValue); - - /** - * Un-Registers a script - * - * @param aExecID script identifier of the registered script - * @param aPolicyID policy identifier passed while registering script - * - */ - void UnRegisterScriptL(TExecutableID aExecID, TPolicyID aPolicyID); - - /** - * Gets underlying script data - * - * @param aScriptInfo CScript& output script data - * - * @return KErrNone if script data could be returned; Otherwise one of - * system error codes - * - */ - TInt ScriptInfo(CScript& aScriptInfo); - - /** - * Updates permanently granted or denied permission data - * of the script - * - * @param aExecID TExecutableID script identifier - * @param aPermGrant TPermGrant permanently allowed permission - * @param aPermDenied TPermGrant permanently denied permission - * - */ - void UpdatePermGrantL(TExecutableID aExecID, TPermGrant aPermGrant, - TPermGrant aPermDenied); - - /** - * Updates permanently granted or denied permission data - * of the script - * - * @param aExecID TExecutableID script identifier - * @param aPermGrant TPermGrant permanently allowed permission - * @param aPermDenied TPermGrant permanently denied permission - * - */ - void UpdatePermGrantL(TExecutableID aExecID, RProviderArray aAllowedProviders, - RProviderArray aDeniedProviders); - - /** - * Gets the script file name - * - * @param aExecID TExecutableID script identifier - * @param TDes& Output file name - * - * @return KErrNone if operation is successful; Otherwise one of - * system wide error codes - * - */ - TInt GetScriptFile(TExecutableID aExecID, TDes& aScriptFile); - -private: - - /** - * Overloaded constructor to initialise internal - * state of CScriptManager - * - */ - inline CScriptManager(CSecMgrStore* aSecMgrDB, CPolicyManager* aPolicyMgr) : - iSecMgrDB(aSecMgrDB), iPolicyMgr(aPolicyMgr) - { - } - - /** - * Two-phased constructor - * - */ - void ConstructL(); - - /** - * Generates a new script identifier - * - */ - inline TExecutableID GetID() - { - if ( --iID > 0) - return iID; - - return (TExecutableID)KSecurityServerUid2Int; - } - -private: - - //list of script data structure - RScripts iScripts; - - //reference to security manager store - CSecMgrStore* iSecMgrDB; - - //reference to policymanager instance - CPolicyManager* iPolicyMgr; - - //Last generated script identifier - TExecutableID iID; - }; - -#endif //C_RTSECMGRSCRIPTMANAGER_H -