homescreensrv_plat/sapi_homescreenplugin/inc/hspsconfigurationif.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 02 Feb 2010 00:23:10 +0200
changeset 4 1a2a00e78665
parent 1 844b978f8d5e
permissions -rw-r--r--
Revision: 201003 Kit: 201005

/*
* 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 CHSPSConfigurationIf
*
*/


#ifndef C_CHSPSCONFIGURATIONIF_H
#define C_CHSPSCONFIGURATIONIF_H

#include <liwcommon.h>
#include <liwserviceifbase.h>
#include <liwbufferextension.h>
#include "hspsconfigurationservice.h"
#include "hspspersonalisationservice.h"

//Forward declarations
class CHspsLiwUtilities;


#ifdef HSPS_LOG_ACTIVE
class ChspsLogBus;
class ChspsLiwDump;
#endif

/**
 * @ingroup group_hsps_sapi
 * This class provides the HSPS SAPI configuration interface to LIW Framework 
*/
NONSHARABLE_CLASS( CHSPSConfigurationIf ) : public CBase, public MLiwInterface
    {
    public:

        /**
         * Two-phased constructor.
         * @return CHSPSConfigurationIf* 
        */
        static CHSPSConfigurationIf* NewL( TDesC8& aAppUid );

        /**
        * Destructor.
        */
        virtual ~CHSPSConfigurationIf();

    private:

        /**
         * Constructor
        */
        CHSPSConfigurationIf();

        /**
         * Symbian Constructor
         * @param aAppUid Application identifier of a configuration.
        */
        void ConstructL( TDesC8& aAppUid );

    public: // From MLiwInterface class

        /**
         * Executes the SAPI as per params
         * @param aCmdName Command name defining which operation is to be performed
         * @param aInParamList  Input param list
         * @param aOutParamList Output list
         * @param aCmdOptions Command option
         * @param aCallback Callback object pointer
        */
        void ExecuteCmdL( 
            const TDesC8& aCmdName,
            const CLiwGenericParamList& aInParamList,
            CLiwGenericParamList& aOutParamList,
            TUint aCmdOptions = 0,
            MLiwNotifyCallback* aCallback = 0 );
        
        /**
         * Closes the interface 
        */
        void Close();

    
    private: // New functions

        /**
         * Calls SAPI method syncronously
         * @param aCmdName Command name defining which operation is to be performed
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void SyncMethodCallL( 
            const TDesC8& aCmdName,
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Calls SAPI method asyncronously
         * @param aCmdName Command name defining which operation is to be performed
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         * @param aCmdOptions asynchronous sapi command options
         * @param aCallback Callback object pointer
         */   
        void AsyncMethodCallL( 
            const TDesC8& aCmdName,
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList,
            TUint aCmdOptions,
            MLiwNotifyCallback* aCallback );

        /**
         * Returns active configuration of the application
         * @param aOutParamList Output param list
         */     
        void GetActiveAppConfL( 
            CLiwGenericParamList& aOutParamList );
        
        /**
         * Returns plugin configuration of defined plugin
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void GetPluginConfL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Returns list of references to installed plugins
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void GetPluginsL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Returns list of references to plugins in active application 
         * configuration
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void GetPluginListL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );
        
        /**
         * Adds a new plugin to the defined configuration
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void AddPluginL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Removes a plugin from the active configuration
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void RemovePluginL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Replaces a plugin from the active configuration
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */
        void ReplacePluginL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );
        
        /**
         * Sets plugin settings
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */
        void SetPluginSettingsL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Gets plugin settings
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */        
        void GetPluginSettingsL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Updates plugin positions
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */
        void MovePluginsL(
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );


        /**
         * Returns list of installed application configurations
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void GetAppConfsL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Sets active application configuration
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void SetActiveAppConfL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
          * Change Notification request
          * @param aInParamList Input param list
          * @param aCallback Callback object pointer
          * @param aTransactionId Output param for async request to store transaction id
          */
        void RequestNotificationL( const CLiwGenericParamList& aInParamList, 
                                         MLiwNotifyCallback* aCallback,
                                         TInt32& aTransactionId );

        /**
         * Updates the configuration's state
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void SetConfStateL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Activates a plugin in plugin list
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void SetActivePluginL( 
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );

        /**
         * Restores plugin configurations.
         * Either removes all plugins from the active view or 
         * reinstalls all ROM based configurations.
         * @param aInParamList Input param list
         * @param aOutParamList Output param list
         */   
        void RestoreConfigurationsL(
            const CLiwGenericParamList& aInParamList, 
            CLiwGenericParamList& aOutParamList );        
        
        /**
         * Sets an error value to output parameter.
         * @param aOutParamList Output param list
         * @param aErr an error
         * @return void
        */
        void SetErrorL( 
            CLiwGenericParamList& aOutParamList, 
            TInt32 aErr );
        
    private: // Data

        /**
         * CHspsConfigurationService class pointer
         */        
        CHspsConfigurationService* iHspsConfigurationService;

        /**
         * CHspsPersonalisationService class pointer
         */        
        CHspsPersonalisationService* iHspsPersonalisationService;

        /**
         * LIW handler
         */        
        CHspsLiwUtilities* iHspsLiwUtilities;
        /**
         * CHspsReqNotifCallback class pointer
         */        
                


#ifdef HSPS_LOG_ACTIVE        
        /**
         * Log bus.
         */        
        ChspsLogBus* iLogBus;
        
        /**
         * Liw dump object.
         */        
        ChspsLiwDump* iLiwDump;
#endif        
    };


#endif // C_CHSPSCONFIGURATIONIF_H