devicediagnosticsfw/diagframework/inc/diagexecplanentryimplsuite.h
branchRCL_3
changeset 26 19bba8228ff0
parent 0 b497e44ab2fc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicediagnosticsfw/diagframework/inc/diagexecplanentryimplsuite.h	Wed Sep 01 12:27:42 2010 +0100
@@ -0,0 +1,172 @@
+/*
+* 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 CDiagExecPlanEntryImplSuite
+*
+*/
+
+
+#ifndef DIAGEXECPLANENTRYIMPLSUITE_H
+#define DIAGEXECPLANENTRYIMPLSUITE_H
+
+// SYSTEM INCLUDE FILES
+#include <DiagSuitePlugin.h>            // MDiagSuitePlugin::TStopReason
+#include <DiagSuiteObserver.h>          // MDiagSuiteObserver
+
+// USER INCLUDE FILES
+#include "diagexecplanentryimpl.h"      // CDiagExecPlanEntryImpl
+
+// FORWARD DECLARATION
+class MDiagSuitePlugin;
+
+/**
+* Diagnostics Plug-in Execution Plan Entry Implementation for Suite plugin
+*
+* This class implements CDiagExecPlanEntryImplSuite. It is meant to be private
+*   to Diagnostics Framework and not exported.
+*
+* @since S60 v5.0
+*
+*/
+NONSHARABLE_CLASS( CDiagExecPlanEntryImplSuite ) : public CDiagExecPlanEntryImpl,
+                                                   public MDiagSuiteObserver
+    {
+public: // Public constructors and destructors
+    /**
+    * Symbian two-phased constructor
+    *   
+    * @param aEngine - Diagnostics Engine
+    * @param aEngineConfig - Engine configuration.
+    * @param aObserver - Execution plan entry observer.
+    * @param aPlugin - Suite plug-in that this plan entry represents.
+    * @param aAsDependency - Whether this item is being executed as dependency or not.
+    * @param aType - Type of execution. @see CDiagExecPlanEntryImpl::TType
+    *
+    * @return a new instance of CDiagExecPlanEntryImplSuite
+    */
+    static CDiagExecPlanEntryImplSuite* NewL( MDiagEngineCommon& aEngine,
+                                              const TDiagEngineConfig& aEngineConfig,
+                                              MDiagExecPlanEntryImplObserver& aObserver,
+                                              MDiagSuitePlugin& aPlugin,
+                                              TBool aAsDependency,
+                                              TType aType );
+
+    /**
+    * Symbian two-phased constructor
+    *  This will leave a entry in clean up stack.
+    *
+    * @param aEngine - Diagnostics Engine
+    * @param aEngineConfig - Engine configuration.
+    * @param aObserver - Execution plan entry observer.
+    * @param aPlugin - Suite plug-in that this plan entry represents.
+    * @param aAsDependency - Whether this item is being executed as dependency or not.
+    * @param aType - Type of execution. @see CDiagExecPlanEntryImpl::TType
+    *
+    * @return a new instance of CDiagExecPlanEntryImplSuite
+    */
+    static CDiagExecPlanEntryImplSuite* NewLC( MDiagEngineCommon& aEngine,
+                                               const TDiagEngineConfig& aEngineConfig,
+                                               MDiagExecPlanEntryImplObserver& aObserver,
+                                               MDiagSuitePlugin& aPlugin,
+                                               TBool aAsDependency,
+                                               TType aType );
+
+    /**
+    * C++ destructor
+    */
+    virtual ~CDiagExecPlanEntryImplSuite();
+
+public:     // new public api
+    /**
+    * Get suite plugin associated.
+    */
+    MDiagSuitePlugin& SuitePlugin();
+
+private:    // from CActive
+    /*
+    * @see CActive::RunL
+    */
+    virtual void RunL();
+
+    /*
+    * @see CActive::DoCancel
+    */
+    virtual void DoCancel();
+    
+
+private:     // from CDiagExecPlanEntryImpl
+    /**
+    * @see CDiagExecPlanEntryImpl::ExecuteL
+    */
+    virtual void ExecuteL();
+
+    /**
+    * @see CDiagEXecPlanEntryImpl::StopExecutionByWatchdogL
+    */
+    virtual void StopExecutionByWatchdogL();
+
+    /**
+    * @see CDiagEXecPlanEntryImpl::StopExecutionByClientL
+    */
+    virtual void DoStopExecutionByClientL( MDiagEngineCommon::TCancelMode aCancelMode );
+
+    /**
+    * @see CDiagEXecPlanEntryImpl::SuspendL
+    */
+    virtual void SuspendL();
+
+    /**
+    * @see CDiagEXecPlanEntryImpl::ResumeL
+    */
+    virtual void ResumeL();
+
+
+private: // from MDiagSuiteObserver
+    /**
+    * Notify engine of suite plug-in execution completion.
+    * 
+    * @see MDiagSuitePlugin::ContinueExecutionL
+    */
+    virtual void ContinueExecutionL( const MDiagSuitePlugin& aSender );
+
+
+private:    // private methods
+    /**
+    * C++ constructor
+    *   
+    * @param aEngine - Diagnostics Engine
+    * @param aEngineConfig - Engine configuration.
+    * @param aObserver - Execution plan entry observer.
+    * @param aPlugin - Suite plug-in that this plan entry represents.
+    * @param aAsDependency - Whether this item is being executed as dependency or not.
+    * @param aType - Type of execution. @see CDiagExecPlanEntryImpl::TType
+    */
+    CDiagExecPlanEntryImplSuite( MDiagEngineCommon& aEngine,
+                                 const TDiagEngineConfig& aEngineConfig,
+                                 MDiagExecPlanEntryImplObserver& aObserver,
+                                 MDiagSuitePlugin& aPlugin,
+                                 TBool aAsDependency,
+                                 TType aType );
+
+    /**
+    * Stop suite plug-in.
+    * 
+    * @param aStopReason - Stop reason to pass to suite.
+    */
+    void StopSuitePluginL( MDiagSuitePlugin::TStopReason aStopReason );
+    };
+
+#endif // DIAGEXECPLANENTRYIMPLSUITE_H
+
+// End of File
+