diff -r 65a3ef1d5bd0 -r f742655b05bf commsconfig/cscengine/inc/cscengservicepluginhandler.h --- a/commsconfig/cscengine/inc/cscengservicepluginhandler.h Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,366 +0,0 @@ -/* -* Copyright (c) 2007-2007 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: For CSC needed AIW handling for service plug-ins -* -*/ - - - -#ifndef C_CSCENGSERVICPLUGINHANDLER_H -#define C_CSCENGSERVICPLUGINHANDLER_H - -#include -#include "mcscengecomobserver.h" - -const TUint KMaxServiceProviderNameLength = 128; - -class CEikonEnv; -class CAiwServiceHandler; -class MAiwNotifyCallback; -class CCSCEngEcomMonitor; -class CAiwGenericParamList; -class CCSCEngServiceHandler; -class MCSCEngProvisioningObserver; - -/** - * TServicePluginInfo class - * - * For storing service plug-in information - * - * @lib - * @since S60 v3.2 - */ -NONSHARABLE_CLASS ( TServicePluginInfo ) - { - public: - - /** - * Constructor. - * - * @since S60 3.2 - */ - TServicePluginInfo() - : iProviderName( KNullDesC ), - iPluginsUid( KNullUid ), - iViewId( KNullUid ), - iModifiedUi( 1 ), - iRequiredIap( 0 ), - iProvisioned( EFalse ), - iOffered( EFalse ) - {} - - public: // data - - /* - * Service provider name - */ - TBuf iProviderName; - - /* - * Service plug-in UID - */ - TUid iPluginsUid; - - /* - * Service plug-in view id - */ - TUid iViewId; - - /* - * 0 = plug-in has no UI - * 1 = plug-in has UI - * (only to provide backwards compatibility, - * all new plug-ins must provide UI ) - */ - TInt iModifiedUi; - - /* - * 0 = plug-in doesn´t required IAP - * 1 = plug-in requires IAP - * (only to provide backwards compatibility, - * all new plug-ins DO NOT require IAP ) - */ - TInt iRequiredIap; - - /* - * ETrue if plug-in is provisioned (configured) - */ - TBool iProvisioned; - - /* - * ETrue if plug-in is offered for configuration - */ - TBool iOffered; - }; - - -/** - * CSCEngServicePluginHandler class - * Handles Application Interworking (AIW) and service plug-in handling - * - * @lib - * @since S60 v3.2 - */ -NONSHARABLE_CLASS( CCSCEngServicePluginHandler ) : public CBase, - public MAiwNotifyCallback, - public MCSCEngEcomObserver - { - public: - - /** State of the plugin */ - enum TPluginState - { - EPluginInitialize = 1, - EPluginProvisioning, - EPluginModifySettings, - EPluginRemovation - }; - - /** Type of plugin count to be returned */ - enum TPluginCount - { - EInitialized = 0, - EUnprovisioned - }; - - // Provisioning plug-in callback service events. - enum TServicePluginResponse - { - EPluginInitialized = KAiwEventStarted, - EPluginProvisioned = KAiwEventCompleted, - EPluginModified = KAiwEventStopped, - EPluginRemoved = KAiwEventQueryExit, - EPluginError = KAiwEventError - }; - - /** - * Two-phased constructor. - * - * @param aObserver reference to service plug-in provisioning observer - * @param aServiceHandler reference to service handler - */ - IMPORT_C static CCSCEngServicePluginHandler* NewL( - CEikonEnv& aEikEnv, - MCSCEngProvisioningObserver& aObserver, - CCSCEngServiceHandler& aServiceHandler ); - - - /** - * Two-phased constructor. - * - * @param aObserver reference to service plug-in provisioning observer - * @param aServiceHandler reference to service handler - */ - IMPORT_C static CCSCEngServicePluginHandler* NewLC( - CEikonEnv& aEikEnv, - MCSCEngProvisioningObserver& aObserver, - CCSCEngServiceHandler& aServiceHandler ); - - - /** - * Destructor. - */ - virtual ~CCSCEngServicePluginHandler(); - - - /** - * Initializes CSC supported plugins. - * - * @since S60 v3.2 - */ - IMPORT_C void InitializePluginsL(); - - - /** - * Informs plugin of provisioning. - * - * @since S60 v3.2 - * @param aPluginUid contains plugins Uid - * @param aViewUid contains view Uid to be returned - */ - IMPORT_C void DoProvisioningL( const TUid& aPluginUid, - const TUid& aViewUid ); - - - /** - * Launches plugin provided setting view. - * - * @since S60 v3.2 - * @param aPluginUid contains plugins Uid - * @param aViewUid contains view Uid to be returned - */ - IMPORT_C void LaunchPluginViewL( const TUid& aPluginUid, - const TUid& aViewUid ); - - - /** - * Informs plugin from removation. - * - * @since S60 v3.2 - * @param aPluginUid contains plugins Uid - * @param aRemoveSisPckg for invoking application installer - */ - IMPORT_C void DoRemovationL( const TUid& aPluginUid, - TBool aRemoveSisPckg ); - - - /** - * Returns count of CSC supported plugins in array. - * - * @since S60 v3.2 - * @param aType for items to be returned - * @return count of profiles - */ - IMPORT_C TInt PluginCount( const TPluginCount aType ) const; - - - /** - * Returns item from service plug-in array - * - * @param aIndex index - * @since S60 v3.2 - */ - IMPORT_C TServicePluginInfo ItemFromPluginInfoArray( TInt aIndex ); - - - // from base class MAiwNotifyCallBack - - /** - * From MAiwNotifyCallBack. - * Handles received callbacks from AIW plugin. - * - * @since S60 v3.0 - * @param aCmdId for cmd id - * @param aEventId for event id - * @param aEventParamList for event param list - * @param aInParamList for in param list - */ - TInt HandleNotifyL( TInt aCmdId, - TInt aEventId, - CAiwGenericParamList& aEventParamList, - const CAiwGenericParamList& aInParamList ); - - - // from base class MCSCEngEcomObserver - - /** - * Observer interface for notifying ecom events. - * - * @since S60 v3.2 - */ - void NotifyEcomEvent(); - - private: - - - CCSCEngServicePluginHandler( - CEikonEnv& aEikEnv, - MCSCEngProvisioningObserver& aObserver, - CCSCEngServiceHandler& aServiceHandler ); - - - void ConstructL(); - - - /** - * Gets plug-in index in plug-in info array and plug-ins uid - * - * @since S60 v3.2 - * @param aInParamList for params received from plugin - * @param aIndex for plug-in info array index - * @param aPluginUid for plug-in uid - */ - void GetPluginIndexAndUid( - const CAiwGenericParamList& aInParamList, - TInt& aIndex, - TUid& aPluginUid ); - - - /** - * Gets and sets plug-in view id - * - * @since S60 v3.2 - * @param aInParamList for params received from plugin - */ - void GetPluginViewId( - const CAiwGenericParamList& aInParamList ); - - /** - * Set information of plug-ins to plug-in info array - * - * @since S60 v3.2 - * @param aInParamList for params received from plugin - */ - void SetPluginInitInfoL( const CAiwGenericParamList& aInParamList ); - - - /** - * Invokes application installer to remove .sis package from device. - * - * @since S60 v3.2 - * @param aPluginUid contains plugin uid - */ - void RemovePluginSisL( const TUid& aPluginUid ) const; - - - private: // data - - /** - * Reference to Eikon environment. - */ - CEikonEnv& iEikEnv; - - /** - * Observer for AIW commands - */ - MCSCEngProvisioningObserver& iObserver; - - /* - * Reference to CCSCEngServiceHandler - */ - CCSCEngServiceHandler& iServiceHandler; - - /** - * For AIW Plugin services - * Own. - */ - CAiwServiceHandler* iAiwServiceHandler; - - /** - * For monitoring Ecom changes. - * Own. - */ - CCSCEngEcomMonitor* iEcomMonitor; - - /** - * Array for storing information of service plug-ins - */ - RArray iServicePluginInfoArray; - - /** - * Resource file offset. - */ - TInt iResourceOffset; - - /** - * Flag indicating that should application installer to be run. - */ - TBool iRunSwinst; - -#ifdef _DEBUG - friend class UT_CSCEngServicePluginHandler; -#endif - }; - -#endif // C_CSCSERVICPLUGINHANDLER_H