diff -r 13d7c31c74e0 -r b183ec05bd8c devicediagnosticsfw/diagframework/inc/diagplugin.h --- a/devicediagnosticsfw/diagframework/inc/diagplugin.h Thu Aug 19 10:44:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,240 +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: Abstract class that represents a diagnostics plug-in -* -*/ - - -#ifndef DIAGPLUGIN_H -#define DIAGPLUGIN_H - -// INCLUDES -#include // CPtrCArray . Needed since this is typedef. - -//Forward declarations -class CGulIcon; -class MDiagEngineCommon; - -// Constants for plugin interfaces -const TUid KDiagPluginInterfaceUid = { 0x2000AFEB }; - -// UID of top most root suite uid. All plug-ins are descendant of this suite. -const TUid KDiagRootSuiteUid = { 0x00000000 }; - -/** -* Abstract class that repsesents a diagnostics plug-in. -* -* @since S60 v5.0 -**/ -class MDiagPlugin - { -public: //data structures - - /** - * Indicates is the plug-in a suite or a test plug-in - **/ - enum TPluginType - { - ETypeTestPlugin, - ETypeSuitePlugin - }; - - /** - * Layout type of name being requested. - */ - enum TNameLayoutType - { - ENameLayoutListSingle, // list_single_graphic_heading_pane_t1_cp2 - ENameLayoutPopupNoteWaitWindow, // popup_note_wait_window - ENameLayoutListLargeGraphic, // list_single_large_graphic_pane_t1 - ENameLayoutHeadingPane, // heading_pane_t1 - ENameLayoutPopupInfoPane, // popup_info_list_pane_t1 - ENameLayoutTitlePane, // title_pane_t2/opt12 - ENameLayoutListSingleGraphic, // list_single_graphic_pane_t1 - ENameLayoutListDoubleGraphic // list_double_graphic_pane_t1 - }; - -public: // public methods - - /** - * Virtual destructor. This ensures that when the interface is deleted, - * compiler will look up virtual table to find correct destructor. - */ - virtual ~MDiagPlugin() {} - - /** - * Method for getting the name of the plugin. Name returned should be based - * on the layout requested, and it should fit within the layout. - * - * @param aLayoutType - Layout where text will be displayed in. @see TNameLayoutType - * @return Localized name of the plug-in. Ownership is transferred to caller. - */ - virtual HBufC* GetPluginNameL( TNameLayoutType aLayoutType ) const = 0; - - /** - * Get the name of the service that the plug-in provides. - * Service name is defined in the ECOM resource file, thus, it is not localized. - * - * @return The name of the service. - **/ - virtual const TDesC& ServiceLogicalName() const = 0; - - /** - * Get logical dependencies. One plug-in can have multiple dependencies to other plug-ins. - * - * @param aArray An array of logical names. - * @see ServiceLogicalName. - **/ - virtual void GetLogicalDependenciesL( CPtrCArray& aArray ) const = 0; - - /** - * Return the type of the plug-in. - * - * @return The type. - * @see TPluginType. - **/ - virtual TPluginType Type() const = 0; - - /** - * Create an icon that represents the plug-in. - * - * @return An icon. - **/ - virtual CGulIcon* CreateIconL() const = 0; - - /** Method for checking, if plugin should be visible. - * (for example shown in listbox). - * Overwrite this function to show or hide your plugin dynamically. - * - * @return ETrue if plugin should be visible, EFalse otherwise. - */ - virtual TBool IsVisible() const = 0; - - /** Method for checking, if plugin is supported. - * Overwrite this function to enable or disable your plugin dynamically. - * If EFalse, plug-in will not be loaded by plugin pool. - * - * @return ETrue if plugin is supported, EFalse otherwise. - */ - virtual TBool IsSupported() const = 0; - - /** - * Get localised description of the test. Description should be used to explain - * the test for the user. It can contain comments that this service needs for - * example access point and it creates costs or that the duration might be long. - * - * @return Allocated buffer containing localized description of the plugin. - **/ - virtual HBufC* GetDescriptionL() const = 0; - - /** - * Get UID of this plug-in. - * - * @return the UID. - **/ - virtual TUid Uid() const = 0; - - /** - * Get the order number that this plug-in should appear in its parent list. - * - * @return TUint order number. - **/ - virtual TUint Order() const = 0; - - /** - * Get UID of the parent. - * - * @return The parent UID. - **/ - virtual TUid ParentUid() const = 0; - - /** - * Set ECom Destructor ID Key. - * - * @param aDtorIdKey Uid returned by REComSession::CreateImplementationL() - **/ - virtual void SetDtorIdKey( TUid aDtorIdKey ) = 0; - - - /** - * 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. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual void TestSessionBeginL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ) = 0; - - - /** - * 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. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual void TestSessionEndL( MDiagEngineCommon& aEngine, - TBool aSkipDependencyCheck, - TAny* aCustomParams ) = 0; - - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aUid Unique identifier of the operation. - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - * 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. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual TAny* CustomOperationL( TUid aUid, TAny* aParam ) = 0; - - /** - * Reserved for future use/plugin's custom functionality. - * - * @param aParam Custom parameter. - * @return TAny pointer. Custom data. - * 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. Ownership is not transferred since - * client does not always know the type of pointer. - **/ - virtual TAny* GetCustomL( TUid aUid, TAny* aParam ) = 0; - }; - -#endif // DIAGPLUGIN_H - -// End of File -