diff -r 13d7c31c74e0 -r b183ec05bd8c devicediagnosticsfw/diagpluginbase/inc/diagsuitepluginbase.h --- a/devicediagnosticsfw/diagpluginbase/inc/diagsuitepluginbase.h Thu Aug 19 10:44:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,325 +0,0 @@ -/* -* Copyright (c) 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: Diagnostics Suite Plug-in Base class -* -*/ - - -#ifndef DIAGSUITEPLUGINBASE_H -#define DIAGSUITEPLUGINBASE_H - -// INCLUDES -#include // TUid -#include // MDiagSuitePlugin -#include // RConeResourceLoader - -// FORWARD DECLARATIONSn -class CDiagPluginConstructionParam; -class CAknDialog; - -/** -* Diagnostics Framework Suite Plugin Base Class -* -* This base class provides common implementation of Suite Plugin. -* -* @since S60 v5.0 -*/ -class CDiagSuitePluginBase : public CActive, - public MDiagSuitePlugin - { -public: - /** - * Destructor. - */ - IMPORT_C virtual ~CDiagSuitePluginBase(); - -protected: // new API for derived class. - /** - * C++ constructor - * - * @param aConstructionParam Construction parameters. - */ - IMPORT_C CDiagSuitePluginBase( CDiagPluginConstructionParam* aParam ); - - /** - * Base class constructor - * This initializes CDiagSuitePluginBase class. Derived class must call this - * method in its ConstructL() method. - * - * @param aResourceFileName Drive and name of resource file in format - * : - */ - IMPORT_C void BaseConstructL( const TDesC& aResourceFileName ); - - /** - * Run a dialog that waits for response. It is highly recommended that - * all plug-ins use this function to display dialogs since it can detect - * deletion of dialogs. - * - * The difference from normal dialog RunLD is that this function returns - * ETrue if dialog exited due to user response and - * EFalse if it was by other means, such as object deletion or - * by DismissWaitingDialog() method. - * - * !!!! NOTE THAT PLUG-IN MUST RETURN IMMEDIATELY WITHOUT ACCESSING !!!! - * !!!! LOCAL VARIABLE OR LOCAL FUNCITONS WHEN THIS FUNCTION RETURNS !!!! - * !!!! EFalse VALUE BECAUSE "THIS" POINTER MAY BE FREED ALREADY. !!!! - * - * The normal dialog response is returned via aDialogResponse reference. - * This function can only display one dialog at a time. Calling it again - * while it has not been returned will cause panic. - * - * @param aDialog - Pointer to dialog to run. If the dialog does not have - * EEikDialogFlagWait flag set, it will panic with EDiagPluginBasePanicBadArgument - * @param aDialogResponse - Response from the dialog. - * For detailed values @see avkon.hrh "CBA constants". E.g. EAknSoftkeyYes - * The only exception is that if cancel is pressed, it will be 0. - * @return ETrue if dialog is exiting due to user response. - * Efalse if dialog is dismissed withou user input. - * If EFalse is returned, plug-in MUST NOT act on the response. - * Also, since plug-in may have been deleted, - */ - IMPORT_C TBool RunWaitingDialogL( CAknDialog* aDialog, TInt& aDialogResponse ); - - /** - * Dismiss the waiting dialog. This will cause the RunDialogLD() function to return with - * aIsUserResponse = Efalse. If nothing is being displayed, this function - * does nothing. - */ - IMPORT_C void DismissWaitingDialog(); - - /** - * CCoeEnv - * @return Reference to CCoeEnv. - */ - IMPORT_C CCoeEnv& CoeEnv(); - -public: // from MDiagPlugin - /** - * Get the name of the service that the plug-in provides. - * - * @return The name of the service. - **/ - IMPORT_C virtual const TDesC& ServiceLogicalName() const; - - /** - * Get logical dependencies. One plug-in can have multiple dependencies - * to other plug-ins. - * - * @param aArray An array of logical names. - * @see ServiceLogicalName. - **/ - IMPORT_C virtual void GetLogicalDependenciesL( CPtrCArray& aArray ) const; - - /** - * Return the type of the plug-in. - * - * @return The type. - * @see TPluginType. - **/ - IMPORT_C virtual TPluginType Type() const; - - /** - * Create an icon that represents the plug-in. - * - * @return An icon. - **/ - IMPORT_C virtual CGulIcon* CreateIconL() const; - - /** - * Get the order number that this plug-in should appear in its parent list. - * - * @return TUint order number. - **/ - IMPORT_C virtual TUint Order() const; - - /** - * @see MDiagPlugin::IsSupported - **/ - IMPORT_C virtual TBool IsSupported() const; - - /** - * Get UID of the parent. - * - * @return The parent UID. - **/ - IMPORT_C virtual TUid ParentUid() const; - - /** - * @see MDiagPlugin::SetDTorIdKey() - */ - IMPORT_C virtual void SetDtorIdKey( TUid aDtorIdKey ); - - /** - * Get title of the plugin. Default implementation in CDiagSuitePluginBase - * will leave with KErrNotSupported. If plug-in has a title, plug-ins - * must override this method. - * @see MDiagPlugin::GetTitleL() - */ - IMPORT_C virtual HBufC* GetTitleL() const; - - /** - * Get description of the plugin. Default implementation in - * CDiagSuitePluginBase will leave with KErrNotSupported. If plug-in - * has a description, plug-ins must override this method. - * @see MDiagPlugin::GetDescriptionL() - */ - IMPORT_C virtual HBufC* GetDescriptionL() const; - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the operation. - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* CustomOperationL( TUid aUid, TAny* aParam ); - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the property - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - */ - IMPORT_C virtual TAny* GetCustomL( TUid aUid, TAny* aParam ); - - /** - * Initialization Step. This method is called before any plugin are executed. - * This can be used to clean up any left over data from previous execution - * sessions. All plug-ins in execution plan will have a chance to clean - * up before any plug-ins are run. This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in will be executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - **/ - IMPORT_C virtual void TestSessionBeginL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - /** - * Cleanup Step. This method is called after all plug-ins in the - * execution plan is completed to clean up any left over data from - * current sesison. This can be used to clean up any data that - * provides dependent service created for its dependencies. - * This is a synchrouns method. - * - * @param aEngine - Reference to engine. - * @param aSkipDependencyCheck - If ETrue, plug-in as executed - * even if dependencies are not executed. - * @param aCustomParams Custom parameters for plug-ins. - * It can used to pass arbitrary data from application to the plug-ins. - * Owership is not transferred and plug-in must not delete - * this parameter. - **/ - IMPORT_C virtual void TestSessionEndL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ); - - -public: // from MDiagSuitePlugin - - /** - * Get children of this plug-in. The pointer array is guaranteed to - * be sorted defined by TSortOrder. - * - * @param aChildren Children are appended into this array. - * @param aOrder Sorting algorithm. - **/ - IMPORT_C virtual void GetChildrenL( RPointerArray& aChildren, - TSortOrder aOrder ) const; - - /** - * Add one child. Child can be either a test suite or a test plug-in. - * - * @param aChild - Child to be added. However, ownership is not - * transferred here. - **/ - IMPORT_C virtual void AddChildL( MDiagPlugin* aChild ); - - /** - * Get the Uids. The uid is used for database access. - * Test suites return a list of their childrens' uids. - * - * @param aUids An UID array. - * @param aOrder Sorting algorithm. - **/ - IMPORT_C virtual void GetChildrenUidsL( RArray& aUids, - TSortOrder aOrder ) const; - - /** - * Called before one of its test plug-in is executed. Note that it will - * not be called if two of its children plug-ins are executed in - * sequence. - * - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - IMPORT_C virtual void PrepareChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ); - - /** - * Called before test execution switches to another test suite. - * - * @param aExecParams Parameters for suite post execution - * @param aSkipDependencyCheck - If ETrue dependency is disabled - * for this test session. - * @param aDependencyExecution - If ETrue, this suite is being - * executed to satisfy dependency. - **/ - IMPORT_C virtual void FinalizeChildrenExecutionL( TDiagSuiteExecParam* aParam, - TBool aSkipDependencyCheck, - TBool aDependencyExecution ); - - /** - * Cancels pre/post execution. Cancellation is expected to be synchronous. - * Suite plug-in must not call ContinueExecutionL(). - * - * @param aReason - Reason why ExecutionStopL() is being called. - **/ - IMPORT_C virtual void ExecutionStopL( TStopReason aReason ); - -private: // Private Data Types - class TPrivateData; - -private: // Private data - /** - * Plug-in constructor parameter. - * Ownership: this - */ - CDiagPluginConstructionParam* iConstructionParam; - - /** - * CCoeEnv. This is needed for handling resources. - */ - CCoeEnv& iCoeEnv; - - /** - * Plug-in base's private data - */ - TPrivateData* iData; - }; - -#endif // DIAGSUITEPLUGINBASE_H - -// End of File -