--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contextframework/cfw/inc/cfserver/CFScriptInterface.h Tue Feb 02 10:12:00 2010 +0200
@@ -0,0 +1,204 @@
+/*
+* Copyright (c) 2002-2006 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: Script interface in CF.
+*
+*/
+
+
+#ifndef M_CFSCRIPTINTERFACE_H
+#define M_CFSCRIPTINTERFACE_H
+
+class CCFActionSubscription;
+class MCFActionSubscriptionListener;
+class MCFScriptOwner;
+class RThread;
+
+/**
+* Interface for registering scripts.
+*/
+class MCFScriptInterface
+ {
+ public:
+
+ /**
+ * Registers a script.
+ * Possible error codes:
+ * - KErrNotFound, specified context or action in script not defined
+ * - KErrAccessDenied, not enough capabilities for context or action
+ *
+ * @since S60 5.0
+ * @param aName Script's name, filename or secure id from client thread.
+ * @param aScript Script.
+ * @param aScriptId Reference to script ID return parameter.
+ * @param aClientThread Client thread.
+ * @param aOwner Script owner session.
+ * @return KErrNone if no errors.
+ */
+ virtual TInt RegisterScript(
+ const TDesC& aName,
+ const TDesC8& aScript,
+ TInt& aScriptId,
+ const RThread& aClientThread,
+ MCFScriptOwner& aOwner ) = 0;
+
+ /**
+ * Deregister a script.
+ *
+ * @since S60 5.0
+ * @param aScriptId ID of the script to be removed.
+ * @param aClientThread Client thread which registered the script.
+ * @return KErrNone if no errors.
+ */
+ virtual TInt DeregisterScript( TInt aScriptId,
+ const RThread& aClientThread ) = 0;
+
+ /**
+ * Deregister a script.
+ *
+ * @since S60 5.0
+ * @param aScriptName Name of the script to be removed.
+ * @param aClientThread Client thread which registered the script.
+ * @return KErrNone if no errors.
+ */
+ virtual TInt DeregisterScript( const TDesC& aScriptName,
+ const RThread& aClientThread ) = 0;
+
+ /**
+ * Deregister a scripts from a particular Sid.
+ *
+ * @since S60 5.0
+ * @param aClientThread Client thread which registered the script.
+ * @return KErrNone if no errors.
+ */
+ virtual TInt DeregisterScripts( const RThread& aClientThread ) = 0;
+
+ /**
+ * Deregister scripts by script session. This is used when the client
+ * session is closed.
+ * @param aOwner Script owner session being closed.
+ */
+ virtual void DeregisterScriptOwner( MCFScriptOwner& aOwner ) = 0;
+
+ /**
+ * Save script into disk.
+ *
+ * @since S60 5.0
+ * @param aScript Script content to save
+ * @param aScriptId Id of the script which data is stored.
+ * @param aClient Client thread.
+ * @return KErrNone if no errors.
+ */
+ virtual TInt SaveScript( const TDesC8& aScript,
+ TInt aScriptId,
+ const RThread& aClient ) = 0;
+
+ /**
+ * Delete script from disk.
+ *
+ * @since S60 5.0
+ * @param aScriptName Script name to delete.
+ * @param aClientThread Client thread which registered the script.
+ * @return KErrNone if no errors.
+ */
+ virtual TInt DeleteScript( const TDesC& aScriptName,
+ RThread& aClientThread ) = 0;
+
+ /**
+ * Delete scripts from disk from a particular Sid.
+ *
+ * @since S60 5.0
+ * @param aScriptName Script name to delete.
+ * @param aClientThread Client thread which registered the script.
+ * @return KErrNone if no errors.
+ */
+ virtual TInt DeleteScripts( RThread& aClientThread ) = 0;
+
+ /**
+ * Check if the script name is already reserved.
+ *
+ * @since S60 5.0
+ * @param aScriptName Name of the script.
+ * @param aClient Client process thread.
+ * @param aScriptId Id of the script found.
+ * @return ETrue if the name is reserved.
+ */
+ virtual TBool AlreadyExists( const TDesC& aScriptName,
+ const RThread& aClient,
+ TInt& aScriptId ) const = 0;
+
+ /**
+ * Cleanup persistent data from a script identified by name.
+ *
+ * @since S60 5.0
+ * @param aScriptName Name of the script.
+ * @param aClient Owner of the scripts.
+ * @return KErrNone if no errors.
+ */
+ virtual void CleanupPersistentDataByName( const TDesC& aScriptName,
+ const RThread& aClientThread ) = 0;
+
+ /**
+ * Cleanup persistent data from all scripts identified by owner uid.
+ *
+ * @since S60 5.0
+ * @param aClient Owner of the scripts.
+ * @return KErrNone if no errors.
+ */
+ virtual void CleanupPersistentDataByUid( const RThread& aClient ) = 0;
+
+ /**
+ * Method for updating (by replacing) a script.
+ *
+ * @since Series 60 5.0
+ * @param aScriptId Id of the script to be updated.
+ * @param aUpdatedScript descriptor containing the new script.
+ * @param aOwner Script owner session.
+ * @return KErrnone if successful, system wide error code otherwise.
+ */
+ virtual TInt UpdateScript( TInt aScriptID,
+ const RThread& aOwnerThread,
+ const TDesC8& aUpdatedScript,
+ MCFScriptOwner& aOwner ) = 0;
+
+ /**
+ * Restore upgraded rom based script with the orginal script found
+ * in rom.
+ *
+ * @since S60 5.0
+ * @param aScriptId Script id of the existing script.
+ * @return KErrNone if no errors.
+ */
+ virtual TInt RestoreRomScript( TInt aScriptId,
+ const RThread& aClient ) = 0;
+
+ /**
+ * Parses the script and checks that client is allowed to upgrade
+ * rom based script. The upgrade must have at least the same
+ * upgrade capability level and the client must have the same
+ * capabilities.
+ * @param aScript The upgrade script.
+ * @param aClient Client process thread.
+ * @return KErrNone if upgrade is allowed.
+ */
+ virtual TInt IsUpgradeAllowed( const TDesC& aName,
+ const TDesC8& aScript,
+ const RThread& aOwnerThread ) = 0;
+
+ protected:
+
+ // Deny destruction through this class
+ virtual ~MCFScriptInterface(){};
+ };
+
+#endif //M_CFSCRIPTINTERFACE_H