--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devicediagnosticsfw/diagframework/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 <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
+