remotemgmt_plat/diagnostics_framework_api/inc/diagpluginexecplan.h
branchRCL_3
changeset 26 19bba8228ff0
parent 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/remotemgmt_plat/diagnostics_framework_api/inc/diagpluginexecplan.h	Wed Sep 01 12:27:42 2010 +0100
@@ -0,0 +1,145 @@
+/*
+* 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:  Class declaration for CDiagPluginExecPlan
+*
+*/
+
+
+#ifndef DIAGPLUGINEXECPLAN_H
+#define DIAGPLUGINEXECPLAN_H
+
+// INCLUDES
+#include <e32base.h>            // CBase
+
+// FORWARD DECLARATION
+class MDiagPlugin;
+class MDiagExecPlanEntry;
+
+/**
+*  Diagnostics Plugin Execution Plan
+*
+*  This class provides interface to access execution plan.
+*  It also provides interface to modify execution plan.
+*  A cursor to currently executing item is also maintained.
+*
+*/
+class MDiagPluginExecPlan
+    {
+public: 
+    /**
+    * Access an item in plan.
+    *
+    * @param aIndex    - index 
+    * @return Reference to plan entry at given index.
+    */
+    virtual const MDiagExecPlanEntry& operator[]( TInt aIndex ) const = 0;
+
+    /**
+    * Get current execution plan item.
+    *
+    * @return Reference to currently executing plan item.
+    */
+    virtual const MDiagExecPlanEntry& CurrentExecutionItem() const = 0;
+
+    /**
+    * Returns index of execution cursor. Note that this index 
+    * includes both suite plug-in and test plug-in.
+    *
+    * If only interested about test plug-ins. use CurrentTestIndex().
+    *
+    * @return Index to current execution cursor.
+    */
+    virtual TInt CurrentIndex() const = 0;
+
+    /**
+    * Returns total number of items in the plan. Note that this count
+    * includes both suite plug-in and test plug-in.
+
+    * If only interested only test plug-ins. use TestCount().
+    *
+    * @return Number of items in the test plan.
+    */
+    virtual TInt Count() const = 0;
+
+    /**
+    * Get current test index.
+    *
+    * Note that only test plug-ins (MDiagTestPlugin) are counted in this
+    * case.  Suite pre/post execution are not. You cannot use this value
+    * with [] operator since this is not a real index.
+    * 
+    * To get real cursor index, use GetCurrentIndex().
+    *
+    * @param aIncludeDependency  If ETrue, test index will also include
+    *                            plugins that are included as dependency.
+    * @return current test index.
+    */
+    virtual TInt CurrentTestIndex( TBool aIncludeDependency ) const = 0;
+
+    /**
+    * Get total test count.
+    *
+    * Note that only test plug-ins (MDiagTestPlugin) are counted in this
+    * case.  Suite pre/post execution are not. You cannot use this value
+    * with [] operator since this is not a real count.
+    * 
+    * To get the real number of items in the plan, use GetCount().
+    *
+    * @param aIncludeDependency  If ETrue, test index will also include
+    *                            plug-ins that are included as dependency.
+    * @return current test index.
+    */
+    virtual TInt TestCount( TBool aIncludeDependency ) const = 0;
+
+    /**
+    * Check if this is the last test being executed.
+    *
+    * Note that only test plug-ins (MDiagTestPlugin) are counted in this
+    * case.  Suite pre/post execution are not.
+    * If you are interested in checking if it is currently running
+    * the last plug-in, including test and suites, @see IsLastPlugin()
+    *
+    * @return ETrue plan is executing the last test plug-in.
+    */
+    virtual TBool IsLastTest() const = 0;
+
+    /**
+    * Check if this is the last plug-in being executed.
+    *
+    * Note that this includes both test plug-ins and suite plug-ins.
+    * If you are interested in checking the progress on tests only,
+    * @see IsLastTest()
+    *
+    * @return ETrue plan is executing the last test or suite plug-in.
+    */
+    virtual TBool IsLastPlugin() const = 0;
+
+    /**
+    * Returns the plug-in index that plan is resuming from.
+    * If this session is not a resume session, this will return 0 (first index).
+    * Otherwise, this index will point the first real execution item.
+    *
+    * Note that this value will not change as test session progresses. Even
+    * as test progresses, this value will still point to the index that
+    * this session is being resumed from.
+    *
+    * @return Index of which session is being resumed from.
+    */
+    virtual TInt ResumeIndex() const = 0;
+    };
+
+#endif // DIAGPLUGINEXECPLAN_H
+
+// End of File
+