homescreensrv_plat/sapi_homescreenplugin/hspsservice/inc/hspspersonalisationservice.h
changeset 0 79c6a41cd166
child 4 1a2a00e78665
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/homescreensrv_plat/sapi_homescreenplugin/hspsservice/inc/hspspersonalisationservice.h	Thu Dec 17 08:54:17 2009 +0200
@@ -0,0 +1,253 @@
+/*
+* Copyright (c) 2008 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:  Defination of class CHspsPersonalisationService
+*
+*/
+
+
+#ifndef C_HSPSPERSONALISATIONSERVICE_H
+#define C_HSPSPERSONALISATIONSERVICE_H
+
+// SYSTEM INCLUDES
+
+#include <e32base.h>
+#include <hspsclient.h>
+#include <hspsthememanagement.h>
+#include <hspsodt.h>
+
+#include <hspsdomlist.h>
+#include <hspsdomdocument.h>
+
+// USER INCLUDES
+
+
+// FORWARD DECLARATIONS
+class ChspsDomNode;
+ 
+/**
+ * @ingroup group_hsps_sapi
+ * This class provides HSPS personalisation services.
+ * 
+ * @since S60 5.0 
+*/
+class CHspsPersonalisationService : public CBase, public MhspsThemeManagementServiceObserver
+    {
+    public: // Constructor and destructor
+
+        /**
+         * Two-phased constructor.
+         * 
+         * @since S60 5.0
+         */
+        IMPORT_C static CHspsPersonalisationService* NewL();
+    
+        /**
+         * Destructor.
+         */
+        virtual ~CHspsPersonalisationService();
+
+    private: // Constructors
+
+        /**
+         * Constructor
+        */
+        CHspsPersonalisationService();
+    
+        /**
+         * Symbian Constructor
+        */
+        void ConstructL();
+
+
+    public: // From base class MhspsThemeManagementServiceObserver
+
+        /**
+         * Realisation of MhspsThemeManagementServiceObserver Interface
+         * @param aMessage contains a service completion message
+         */
+        void HandlehspsClientMessage( ThspsServiceCompletedMessage aMessage );
+
+    public: // New methods
+       
+        /**
+         * Get the list of plugins ODT headers.
+         * 
+         * @since S60 5.0
+         * @param aInterface Interface of the requested plugins.
+         * @param aType Type of the requested plugins.
+         * @param aFamily Requested plugin configuration family
+         * @param aList List of plugins ODT headers.
+         */
+        IMPORT_C void GetPluginListL( 
+            TDesC8& aInterface,
+            TDesC8& aType,
+            TUint32 aFamily,
+            CArrayPtrFlat<ChspsODT>& aList
+            );
+
+        /**
+         * Add a new plugin to the defined configuration.
+         * 
+         * @since S60 5.0
+         * @param aAppUid Uid of modified application configuration.
+         * @param aConfId Id of modified configuration.
+         * @param aPluginUid Uid of new plugin.
+         * @param aPosition Position in configurations plugin list.
+         * @param aPluginId Id of new plugin in modified configuration.
+         */
+        IMPORT_C void AddPluginL(
+            TInt aAppUid,
+            TDesC8& aConfId,
+            TDesC8& aPluginUid,
+            TDesC8& aPosition,
+            TInt& aPluginId
+            );
+
+        /**
+         * Remove plugin from the defined configuration.
+         * 
+         * @since S60 5.0
+         * @param aAppUid Uid of modified application configuration.
+         * @param aPluginId Id of removed plugin in configuration.
+         */
+        IMPORT_C void RemovePluginL(
+            TInt aAppUid,
+            TDesC8& aPluginId
+            );
+
+        /**
+         * Sets/changed plugin settings. 
+         * 
+         * @since S60 5.0
+         * @param aAppUid Uid of modified application configuration.
+         * @param aPluginId Id of plugin whose settings are updated.
+         * @param aDom Dom document of the settings which are changed.
+         * @param aPluginStoringStatus status to tell whether plugin reference need to be stored.
+         */
+        IMPORT_C void SetPluginSettingsL(
+                TInt aAppUid,
+                TDesC8& aPluginId,
+                ChspsDomDocument& aDom,
+                TBool aPluginStoringStatus);
+
+        /**
+         * Updates plugin position in a configuration.
+         * 
+         * @since S60 5.0 
+         * @param aAppUid Uid of modified application configuration.
+         * @param aConfId Id of a configuration whose plugins list is updated.
+         * @param aPluginIds An array of plugin ids in the new positions.         
+         */
+        IMPORT_C void MovePluginsL(
+            const TInt aAppUid,
+            TDesC8& aConfId,
+            CArrayFixFlat<TInt>& aPluginIds );
+
+        /**
+         * Get a list of ODT headers containing the information of available
+         * configurations for the defined application.
+         * 
+         * @since S60 5.0
+         * @param aAppUid application UID.
+         * @param aFamily Requested application configuration family
+         * @param aList An array of available application configurations.         
+         */
+        IMPORT_C void GetAppConfListL(
+            TInt aAppUid,
+            TUint32 aFamily,
+            CArrayPtrFlat<ChspsODT>& aList );
+
+        /**
+         * Set active application configuration.
+         * 
+         * @since S60 5.0
+         * @param aAppUid application UID.
+         * @param aConfUid configuration UID.         
+         */
+        IMPORT_C void SetActiveAppConfL(
+            TInt aAppUid,
+            TDesC8& aConfUid );
+
+        /**
+         * Gets plugin odt.
+         * 
+         * @since S60 5.0
+         * @param aAppUid - application uid.
+         * @param aPluginUid - plugin's uid to be retrieved. 
+         * @param aPluginOdt - odt.
+         */
+        IMPORT_C void GetPluginOdtL(
+            TInt aAppUid,
+            TDesC8& aPluginUid,
+            ChspsODT* aPluginOdt );    
+
+        /**
+         * Set configuration state.
+         * 
+         * @since S60 5.0
+         * @param aAppUid - application uid.
+         * @param aConfId - configuration id.
+         * @param aState - configuration's next state.
+         * @param aFilter - configuration selection options
+         */
+        IMPORT_C void SetConfStateL(
+            TInt aAppUid,
+            TDesC8& aConfId,
+            TDesC8& aState,
+            TDesC8& aFilter );    
+
+        /**
+         * Restore active application configuration
+         * @param aAppUid - application uid
+         * @param aConfId - configuration id 
+         */
+        IMPORT_C void RestoreActiveAppConfL(
+            TInt aAppUid,
+            TDesC8& aConfUid );
+
+        /**
+         * Activates defined plugin in plugin list
+         * 
+         * @since S60 5.0
+         * @param aAppUid Uid of modified application configuration.
+         * @param aPluginId Id of activated plugin
+         */
+        IMPORT_C void SetActivePluginL(
+            TInt aAppUid,
+            TDesC8& aPluginId
+            );
+        
+        /**
+         * Replaces a plugin in active application configuration
+         * @param aAppUid - application uid
+         * @param aPluginId - id of the plugin to be replaced
+         * @param aConfUid - uid of the new plugin configuration 
+         */
+        IMPORT_C void ReplacePluginL(
+            const TInt aAppUid,
+            const TDesC8& aPluginId,
+            const TDesC8& aConfUid );
+
+    private: // Methods
+    
+    private: // Data        
+
+        // Pointer to HSPS Theme server client object
+        ChspsClient* iHspsClient;
+
+    };
+
+#endif // C_HSPSPERSONALISATIONSERVICE_H
+
+// End of File.