remotemgmt_plat/diagnostics_plugin_api/inc/diagtestplugin.h
branchRCL_3
changeset 26 19bba8228ff0
parent 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/remotemgmt_plat/diagnostics_plugin_api/inc/diagtestplugin.h	Wed Sep 01 12:27:42 2010 +0100
@@ -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    <DiagPlugin.h>              // 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
+