diff -r 000000000000 -r b497e44ab2fc remotemgmt_plat/diagnostics_plugin_api/inc/diagtestplugin.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotemgmt_plat/diagnostics_plugin_api/inc/diagtestplugin.h Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,139 @@ +/* +* 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: Test Plugin Abstract Interface +* +*/ + + +#ifndef DIAGTESTPLUGIN_H +#define DIAGTESTPLUGIN_H + +// INCLUDES +#include // MDiagPlugin + + +// FORWARD DECLARATION +class CDiagPluginExecPlan; +class MDiagTestObserver; +class MDiagEngineCommon; +class CDiagPluginPool; +class TDiagTestExecParam; +class CDiagResultsDatabaseItem; +class MDiagResultDetail; + +/** +* Diagnostics test plug-in abstract interface. +* +* @since S60 v5.0 +**/ +class MDiagTestPlugin: public MDiagPlugin + { +public: + + /** + * Run mode defines what kind of behaviour is expected from this plug-in. + **/ + enum TRunMode + { + EInteractiveView, // plugin with a view + EInteractiveDialog, // interactive, but with dialogs + EAutomatic // automatic tests + }; + + /** + * Reason for execution stop. + **/ + enum TStopReason + { + ESkip, + ECancelAll, + EWatchdog + }; + + /** + * Execute a diagnostics test. This is an asynchronous method. The plug-in + * must call MDiagTestObserver:TestExecutionCompletedL when test has finished. + * + * @param aExecParams Parameters for running the test. + * @param aSkipDependencyCheck - If ETrue, plug-in should execute even if + * dependencies are not executed. + * @param aDependencyExecution - If ETrue, this is being executed to + * satisfy dependency. + * @param aCustomParams Custom parameters for plug-ins. + * These should be used if TDiagTestExecParam is not enough. + * 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 RunTestL( TDiagTestExecParam* aExecParam, + TBool aSkipDependencyCheck, + TBool aDependencyExecution, + TAny* aCustomParams ) = 0; + + /** + * Describes the run mode of the test plug-in. + * + * @return Run mode. + * @see TDiagRunMode. + **/ + virtual TRunMode RunMode() const = 0; + + /** + * Cancels testing. Cancellation is expected to be synchronous. + * Test plug-in must return the result immediately, and it must not call + * TestExecutionCompletedL(). Ownership of the CDiagResultsDatabaseItem is + * transferred to the caller. + * + * @param aReason - Reason why ExecutionStopL() is being called. + * @return Returns result object. Test must not call TestExecutionCompletedL. + **/ + virtual CDiagResultsDatabaseItem* ExecutionStopL( TStopReason aReason ) = 0; + + /** + * Suspend test. If test cannot be suspended, it will leave with + * KErrNotSupported. + **/ + virtual void SuspendL() = 0; + + /** + * Resume test. If test cannot be resumed, it will leave with + * KErrNotSupported. + **/ + virtual void ResumeL() = 0; + + /** + * Get the number of steps that is needed to execute tests. + * This can be used to calculate progress information. + * + * @return The number of steps. + **/ + virtual TUint TotalSteps() const = 0; + + /** + * Create detailed information object from test result. + * Ownership is transferred to caller. + * + * @param aTestResult - Base test result. + * @return Instance of MDiagResultDetail* that can provide detailed + * information about the last test. + **/ + virtual MDiagResultDetail* CreateDetailL( + const CDiagResultsDatabaseItem& aResult ) const = 0; + }; + +#endif // DIAGTESTPLUGIN_H + +// End of File +