devicediagnosticsfw/diagframework/inc/diagengineimpl.h
branchRCL_3
changeset 61 b183ec05bd8c
parent 59 13d7c31c74e0
child 62 19bba8228ff0
--- a/devicediagnosticsfw/diagframework/inc/diagengineimpl.h	Thu Aug 19 10:44:50 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,803 +0,0 @@
-/*
-* 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 CDiagEngineImpl
-*
-*/
-
-
-#ifndef DIAGENGINEIMPL_H
-#define DIAGENGINEIMPL_H
-
-
-// system includes
-#include <e32base.h>                    // CActive
-#include <DiagEngineCommon.h>           // MDiagEngineCommon
-#include <DiagEngineObserver.h>         // MDiagEngineObserver::TSuspendReason
-#include <DiagResultsDatabase.h>        // RDiagResultsDatabase, RDiagResultsDatabaseRecord
-#include <DiagTestPlugin.h>             // MDiagTestPlugin::TStopReason
-#include <DiagSuitePlugin.h>            // MDiagSuitePlugin::TStopReason
-
-// user includes.
-#include "diagenginestatemachineobserver.h"     // DiagFwInternal::MStateMachineObserver
-#include "diagenginestates.h"                   // DiagFwInternal::TState
-#include "diagengineevents.h"                   // DiagFwInternal::TEvent
-#include "diagenginecallhandlerobserver.h"      // MDiagEngineCallHandlerObserver
-#include "diagexecplanentryimplobserver.h"      // MDiagExecPlanEntryImplObserver
-#include "diagengineconfig.h"                   // TDiagEngineConfig
-
-
-// Forward declarations
-class MDiagTestPlugin;
-class MDiagSuitePlugin;
-class CDiagPluginPool;
-class CAknViewAppUi;
-class CDiagEngineCallHandler;
-class CDiagPluginExecPlanImpl;
-class CDiagExecPlanEntryImpl;
-class CDiagExecPlanEntryImplTest;
-
-namespace DiagFwInternal
-    {
-    class CStateMachine;
-    class CEventBasic;
-    class CEventCancel;
-    class CEventSendCompletion;
-    class CEventSuiteContinue;
-    class CEventTestCompleted;
-    class CEventTestProgress;
-    class CEventWatchdog;
-    }
-
-/**
-*  Diagnostics Framework Engine Implementation
-*
-*  This class is the actual class that implements CDiagEngine.
-*  All actual work is done by CDiagEngineImpl class.
-*
-*/
-NONSHARABLE_CLASS( CDiagEngineImpl ) : public CActive,
-                                       public MDiagEngineCommon,
-                                       public MDiagExecPlanEntryImplObserver,
-                                       public DiagFwInternal::MStateMachineObserver,
-                                       public MDiagEngineCallHandlerObserver
-    {
-public:
-
-    /**
-    * Two-phased constructor.
-    * @param aViewAppUi    View App Ui that is using this engine.
-    * @param aObserver     Engine observer.
-    * @param aDbSession    Session to RDiagResultDatabase to create record.
-    * @param aPluginPool   Initialized plug-in pool that holds plug-ins.
-    * @param aDisableDependency    if ETrue, plug-ins should execute
-    *                      event if dependencies are not met.
-    * @param aExecutionBatch - array of test uids to execute
-    *
-    * @return new instance of CDiagEngineImpl*
-    */
-    static CDiagEngineImpl* NewL( CAknViewAppUi&          aViewAppUi, 
-                                  MDiagEngineObserver&    aObserver,
-                                  RDiagResultsDatabase&   aDbSession,
-                                  CDiagPluginPool&        aPluginPool,
-                                  TBool                   aDisableDependency,
-                                  const RArray< TUid >&   aExecutionBatch );
-
-    /**
-    * Two-phased constructor. This function is identical to NewL, 
-    * except that it pushs created object in clean up stack.
-    *
-    * @param aViewAppUi    View App Ui that is using this engine.
-    * @param aObserver     Engine observer.
-    * @param aDbSession    Session to RDiagResultDatabase to create record.
-    * @param aPluginPool   Initialized plug-in pool that holds plug-ins.
-    * @param aDisableDependency    if ETrue, plug-ins should execute
-    *                      event if dependencies are not met.
-    * @param aExecutionBatch - array of test uids to execute
-    *
-    * @return new instance of CDiagEngineImpl*
-    */
-    static CDiagEngineImpl* NewLC( CAknViewAppUi&          aViewAppUi, 
-                                   MDiagEngineObserver&    aObserver,
-                                   RDiagResultsDatabase&   aDbSession,
-                                   CDiagPluginPool&        aPluginPool,
-                                   TBool                   aDisableDependency,
-                                   const RArray< TUid >&   aExecutionBatch );
-    
-
-    /**
-    * Two-phased constructor.
-    * @param aViewAppUi    View App Ui that is using this engine.
-    * @param aObserver     Engine observer.
-    * @param aDbSession    Session to RDiagResultDatabase to create record.
-    * @param aPluginPool   Initialized plug-in pool that holds plug-ins.
-    * @param aIncompleteRecordUid - Uid to the record to resume.
-    *
-    * @return new instance of CDiagEngineImpl*
-    */
-    static CDiagEngineImpl* NewL( CAknViewAppUi&          aViewAppUi, 
-                                  MDiagEngineObserver&    aObserver,
-                                  RDiagResultsDatabase&   aDbSession,
-                                  CDiagPluginPool&        aPluginPool,
-                                  TUid                    aIncompleteRecordUid );
-    /**
-    * Two-phased constructor. This function is identical to NewL, 
-    * except that it pushs created object in clean up stack.
-    *
-    * @param aViewAppUi    View App Ui that is using this engine.
-    * @param aObserver     Engine observer.
-    * @param aDbSession    Session to RDiagResultDatabase to create record.
-    * @param aPluginPool   Initialized plug-in pool that holds plug-ins.
-    * @param aIncompleteRecordUid - Uid to the record to resume.
-    *
-    * @return new instance of CDiagEngineImpl*
-    */
-    static CDiagEngineImpl* NewLC( CAknViewAppUi&          aViewAppUi, 
-                                   MDiagEngineObserver&    aObserver,
-                                   RDiagResultsDatabase&   aDbSession,
-                                   CDiagPluginPool&        aPluginPool,
-                                   TUid                    aIncompleteRecordUid );
-    
-
-    /**
-    * Destructor.
-    */
-    virtual ~CDiagEngineImpl();
-
-    /**
-    * Execute tests. This implements CDiagEngine::ExecuteL
-    *
-    * @see CDiagEngine::ExecuteL
-    */
-    void ExecuteL();
-
-    /**
-    * Set custom execution parameter.
-    *
-    * @see CDiagEngine::SetCustomParam
-    */
-    void SetCustomParam( TAny* aCustomParams );
-
-    /**
-    * Suspend execution.  
-    * 
-    * @see CDiagEngine::SuspendL
-    */
-    void SuspendL();
-
-    /**
-    * Resume suspended execution. This implements CDiagEngine::ResumeL
-    *
-    * @see CDiagEngine::ResumeL
-    */
-    void ResumeL();
-
-public: // from MDiagEngineCommon
-    /**
-    * Returns current execution plan.
-    * 
-    * @see MDiagEngineCommon::ExecutionPlanL
-    */
-    virtual const MDiagPluginExecPlan& ExecutionPlanL() const;
-
-    /**
-    * Stop current execution of tests.
-    * 
-    * @see MDiagEngineCommon::ExecutionStopL
-    */
-    virtual void ExecutionStopL( TCancelMode aCancelMode );
-    
-    /**
-    * Resets test execution watchdog timer.
-    * 
-    * @see MDiagEngineCommon::ResetWatchdog
-    */
-    virtual void ResetWatchdog();
-    
-    /**
-    * Resets test execution watchdog timer.
-    * @see MDiagEngineCommon::ResetWatchdog
-    */
-    virtual void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType );
-    
-    /**
-    * Resets test execution watchdog timer.
-    * @see MDiagEngineCommon::ResetWatchdog
-    */
-    virtual void ResetWatchdog( TTimeIntervalMicroSeconds32 aExpectedTimeToComplete );
-    
-    /**
-    * Get App Ui reference that launched Diagnostics Engine.
-    * 
-    * @see MDiagEngineCommon::ViewAppUi()
-    */
-    virtual CAknViewAppUi& ViewAppUi();
-    
-    /**
-    * Get App Ui reference that launched Diagnostics Engine.
-    * 
-    * @see MDiagEngineCommon::ViewAppUi()
-    */
-    virtual const CAknViewAppUi& ViewAppUi() const;
-
-    /**
-    * Get Database Subsession for record open for writing.
-    * 
-    * @see MDiagEngineCommon::DbRecord
-    */
-    virtual RDiagResultsDatabaseRecord& DbRecord();
-
-    /**
-    * Get Database Subsession for record open for writing.
-    * 
-    * @see MDiagEngineCommon::DbRecord
-    */
-    virtual const RDiagResultsDatabaseRecord& DbRecord() const;
-
-    /**
-    * Get reference to Plugin Pool
-    * 
-    * @see MDiagEngineCommon::PluginPool
-    */
-    virtual CDiagPluginPool& PluginPool();
-
-    /**
-    * Get reference to Plugin Pool
-    * 
-    * @see MDiagEngineCommon::PluginPool
-    */
-    virtual const CDiagPluginPool& PluginPool() const;
-
-    /**
-    * Add a text to configuraiton list option. 
-    * 
-    * @see MDiagEngineCommon::AddToConfigListL
-    */
-    virtual void AddToConfigListL( TConfigListType aListType, const TDesC& aText );
-
-    /**
-    * Remove a text from configuration list.
-    * 
-    * @see MDiagEngineCommon::RemoveFromConfigListL
-    */
-    virtual void RemoveFromConfigListL( TConfigListType aListType, const TDesC& aText );
-
-    /**
-    * Create a common dialog.
-    * @see MDiagEngineCommon::CreateCommonDialogL
-    */
-    virtual CAknDialog* CreateCommonDialogLC( TDiagCommonDialog aDialogType,
-                                              TAny* aInitData );
-
-    /**
-    * Stop watchdog activity temporarily.
-    * @see MDiagEngineCommon::StopWatchdogTemporarily
-    */
-    virtual void StopWatchdogTemporarily();
-
-    /**
-    * Check if current engine is being executed with dependency disabled.
-    * @see MDiagEngineCommon::IsDependencyDisabled
-    */
-    virtual TBool IsDependencyDisabled() const;
-
-    /**
-    * Get custom execution parameter.
-    * @see MDiagEngineCommon::CustomParam
-    */
-    virtual TAny* CustomParam() const;
-
-    /**
-    * Send a command to application.
-    *   @see MDiagEngineCommon::ExecuteAppCommandL
-    */
-    virtual void ExecuteAppCommandL( TDiagAppCommand aCommand, 
-                                     TAny* aParam1,
-                                     TAny* aParam2 );
-
-private: // from MDiagExecPlanEntryImplObserver
-    /**
-    * Observe plugin execution progress
-    * @see MDiagExecPlanEntryImplObserver::ExecPlanEntryProgressL
-    */
-    virtual void ExecPlanEntryProgressL( CDiagExecPlanEntryImpl& aSender,
-                                         TUint aCurrentStep,
-                                         TUint aTotalSteps );
-    /**
-    * Observe plugin execution completion
-    * @see MDiagExecPlanEntryImplObserver::ExecPlanEntryExecutedL
-    */
-    virtual void ExecPlanEntryExecutedL( CDiagExecPlanEntryImpl& aSender );
-
-    /**
-    * Observer critical error from plug-in execution entry.
-    * @see MDiagExecPlanEntryImplObserver::ExecPlanEntryCriticalError
-    */
-    virtual void ExecPlanEntryCriticalError( TInt aError );
-
-private: // from DiagFwInternal::MStateMachineObserver
-    /**
-    * Handle state transition
-    * 
-    * @see MDiagEngineStateMachineObserver::HandleStateChangedL
-    */
-    virtual void HandleStateChangedL( DiagFwInternal::TState aPreviousState, 
-                                      DiagFwInternal::TState aCurrentState,
-                                      const DiagFwInternal::CEventBasic& aEventPreview );
-
-    /**
-    * Handle event.
-    * 
-    * @see MDiagEngineStateMachineObserver::HandleEventL
-    */
-    virtual void HandleEventL( DiagFwInternal::CEventBasic& aEvent );
-
-    /**
-    * Handle error.
-    * 
-    * @see MDiagEngineStateMachineObserver::HandleError
-    */
-    virtual DiagFwInternal::TState HandleError( DiagFwInternal::TState aCurrentState, 
-                                                TInt aError );
-
-private:    // From MDiagEngineCallHandlerObserver
-    /**
-    * Handle call handling state change.
-    * 
-    * @see MDiagEngineCallHandlerObserver::CallHandlerStateChangedL
-    */
-    virtual void CallHandlerStateChangedL( TDiagEngineCallHandlerState aState );
-
-private:    // from CActive
-    /**
-    * RunL from CActive
-    * 
-    * @see CActive::RunL
-    */
-    virtual void RunL();
-
-    /**
-    * DoCancel from CActive
-    * 
-    * @see CActive::DoCancel
-    */
-    virtual void DoCancel();
-
-    /**
-    * Handle error 
-    * 
-    * @see CActive::RunError
-    */
-    virtual TInt RunError( TInt aError );
-
-private:    // Private Constructors
-    /**
-    * C++ Constrctor
-    *
-    * @param aViewAppUi - Reference to Appui.
-    * @param aObserver - Reference to engine observer. (Generall app)
-    * @param aDbSession - Session to the database.
-    * @param aPluginPool - Reference to plug-in pool.
-    * @param aDisableDependency - Whether to disable dependency check.
-    * @param aIncompleteRecordUid - Uid to the record to resume.
-    *   If this UID is aIncompleteRecordUid == TUid::Null(), it will create
-    *   a new record. 
-    */
-    CDiagEngineImpl( CAknViewAppUi&          aViewAppUi,
-                     MDiagEngineObserver&    aObserver,
-                     RDiagResultsDatabase&   aDbSession,
-                     CDiagPluginPool&        aPluginPool );
-    
-    /**
-    * Second phase constructor for creating a new record.
-    *
-    * @param aDisableDependency - Whether to disable dependency check
-    * @param aExecutionBatch - Array of plug-in uids to execute
-    */
-    void ConstructNewRecordL( TBool aDisableDependency, 
-                              const RArray< TUid >& aExecutionBatch );
-
-    /**
-    * Second phase constructor for resuming incomplete record.
-    * 
-    * @param aIncompleteRecordUid - Uid of DB record to resume from.
-    */
-    void ConstructIncompleteRecordL( TUid aIncompleteRecordUid );
-    
-    /**
-    * Second phase constructor common.
-    * Initializes items that are common to both new session and resuming session.
-    */
-    void ConstructCommonL();
-
-private:    // Event handlers
-    /**
-    * State handler function for EStateCreatingPlan
-    *
-    * @param aEvent - Event to handle.
-    */
-    void HandleEventInCreatingPlanStateL( DiagFwInternal::CEventBasic& aEvent );
-
-    /**
-    * State handler function for EStateRunning
-    *
-    * @param aEvent - Event to handle.
-    */
-    void HandleEventInRunningStateL( DiagFwInternal::CEventBasic& aEvent );
-
-    /**
-    * State handler function for EStateCancelAll
-    *
-    * @param aEvent - Event to handle.
-    */
-    void HandleEventInCancelAllStateL( DiagFwInternal::CEventBasic& aEvent );
-
-    /**
-    * State handler function for EStateSuspended
-    *
-    * @param aEvent - Event to handle.
-    */
-    void HandleEventInSuspendedStateL( DiagFwInternal::CEventBasic& aEvent );
-
-    /**
-    * State handler function for EStateFinalizing
-    *
-    * @param aEvent - Event to handle.
-    */
-    void HandleEventInFinalizingStateL( DiagFwInternal::CEventBasic& aEvent );
-
-    /**
-    * State handler function for EStateStopped
-    *
-    * @param aEvent - Event to handle.
-    */
-    void HandleEventInStoppedStateL( DiagFwInternal::CEventBasic& aEvent );
-
-private:    // Other private functions
-    /**
-    * Start creating execution plan
-    */
-    void StartCreateExecutionPlanL();
-
-    /**
-    * Handle Plan created event
-    */
-    void HandlePlanCreatedL();
-
-    /**
-    * Notify test progress event to engine observer
-    *
-    * @param aEvent - test progress event.
-    */
-    void NotifyTestProgressL( DiagFwInternal::CEventTestProgress& aEvent );
-
-    /**
-    * Report plug-in execution result to observer and continue to the next test.
-    *
-    * @param aError - Error code to report to observer.
-    * @param aResult - result to report to observer.
-    */
-    void NotifyResultAndContinueL( TInt aError, CDiagResultsDatabaseItem* aResult );
-
-    /**
-    * Commit db record to DB. 
-    *
-    */
-    void CommitResultsToDb();
-
-    /**
-    * Notify observer that last plugin is completed and engine is now stopped.
-    * This could also mean that execution has failed.
-    *
-    * @param aEvent - last completion event
-    */
-    void NotifyLastPluginCompletedL( DiagFwInternal::CEventSendCompletion& aEvent );
-
-    /**
-    * Execute next plugin in the plan
-    *
-    */
-    void ExecuteNextPluginL();
-
-    /**
-    * Suspend engine
-    * 
-    * @param aReason - Reason for suspending.
-    */
-    void DoSuspendL( MDiagEngineObserver::TSuspendReason aReason );
-
-    /**
-    * Add event to state machine.
-    *   This functions makes sure that correct resume event is added to 
-    *   the state machine depending on the previous state.
-    * @param aReason - Resume reason.
-    */
-    void AddResumeEventL( MDiagEngineObserver::TResumeReason aReason );
-
-    /**
-    * Resume engine
-    *
-    */
-    void DoResumeL();
-
-    /**
-    * Handle Skip
-    *
-    */
-    void HandleSkipL();
-
-    /**
-    * Handle cancelling of all plug-ins
-    *
-    */
-    void HandleCancelAllL();
-
-    /**
-    * Start delay timer for test plugin
-    *
-    * @param aPlanEntry - test plugin entry in plan to execute.
-    */
-    void StartTimerForDelayingTestL( CDiagExecPlanEntryImpl& aPlanEntry );
-
-    /**
-    * Start Executing a test plug-in
-    *
-    * @param aPlanEntry - test plugin entry in plan to execute.
-    */
-    void DoExecuteTestPluginL( CDiagExecPlanEntryImpl& aPlanEntry );
-
-    /**
-    * Start Executing a suite plug-in
-    *
-    * @param aPlanEntry - suite plugin entry in plan to execute.
-    */
-    void DoExecuteSuitePluginL( CDiagExecPlanEntryImpl& aPlanEntry );
-
-    /**
-    * Callback function for plugin delay timer expiration.
-    *
-    * @param aPtr - pointer to "this"
-    */
-    static TInt PluginDelayTimerExpiredL( TAny* aPtr );
-
-    /**
-    * Callback function for watchdog timer expiration. 
-    *
-    * @param aPtr - pointer to "this"
-    */
-    static TInt WatchdogTimerExpiredL( TAny* aPtr );
-
-    /**
-    * Handle watchdog time expiration. 
-    *
-    * @param aEvent - Watchdog event.
-    */
-    void HandleWatchdogTimeoutL( DiagFwInternal::CEventWatchdog& aEvent );
-
-    /**
-    * Function to stop currently executing plugin
-    *
-    * @param aStopMode - Reason for stopping the execution.
-    * @param aIsWatchdog - ETrue if this is because of watchdog timeout.
-    * @return Test Result. NULL if plug-in was a suite. Ownership transferred
-    *   to caller.
-    */
-    CDiagResultsDatabaseItem* StopCurrentPluginL( TCancelMode aStopMode, 
-                                                  TBool aIsWatchdog );
-
-    /**
-    * Function to stop currently executing test plugin
-    *
-    * @param aStopMode - Reason for stopping the execution.
-    * @param aIsWatchdog - ETrue if this is because of watchdog timeout.
-    * @return Test Result. NULL if plug-in was a suite. Ownership transferred
-    *   to caller.
-    */
-    CDiagResultsDatabaseItem* StopCurrentTestPluginL( TCancelMode aStopMode, 
-                                                      TBool aIsWatchdog );
-
-    /**
-    * Function to stop currently executing suite plugin
-    *
-    * @param aStopMode - Reason for stopping the execution.
-    * @param aIsWatchdog - ETrue if this is because of watchdog timeout.
-    */
-    void StopCurrentSuitePluginL( TCancelMode aStopMode, TBool aIsWatchdog );
-
-    /**
-    * Function to create test stop reason based on input parameter
-    *
-    * @param aStopMode - Reason for stopping the execution.
-    * @param aIsWatchdog - ETrue if this is because of watchdog timeout.
-    * @return Test stop reason
-    */
-    MDiagTestPlugin::TStopReason TranslateTestStopReason( TCancelMode aStopMode, 
-                                                          TBool aIsWatchdog );
-        
-    /**
-    * Function to create suite stop reason based on input parameter
-    *
-    * @param aStopMode - Reason for stopping the execution.
-    * @param aIsWatchdog - ETrue if this is because of watchdog timeout.
-    * @return Suite stop reason
-    */
-    MDiagSuitePlugin::TStopReason TranslateSuiteStopReason( TCancelMode aStopMode, 
-                                                            TBool aIsWatchdog );
-        
-    /**
-    * Function to create database result type based on input parameter
-    *
-    * @param aStopMode - Reason for stopping the execution.
-    * @param aIsWatchdog - ETrue if this is because of watchdog timeout.
-    * @return Database result type.
-    */
-    CDiagResultsDatabaseItem::TResult ConvertToDbResult( TCancelMode aStopMode, 
-                                                         TBool aIsWatchdog );     
-        
-    /**
-    * Create database result item with just result.
-    *
-    * @param aCurrentItem - Currently executing item
-    * @param aResult - Result type
-    * @return Database result item. Ownership transferred to caller.
-    */
-    CDiagResultsDatabaseItem* CreateDbItemL( 
-            CDiagExecPlanEntryImpl& aCurrentItem,
-            CDiagResultsDatabaseItem::TResult aResultType ) const;
-        
-    /**
-    * Call TestSessionEndL on all plug-ins.
-    *
-    */
-    void NotifyPluginsOfTestSessionEnd();
-
-    /**
-    * Stops all active requests
-    */
-    void StopAllRequests();
-
-    /**
-    * Cleans up incomplete test session during engine destruction.
-    * This function should be called only from destructor.
-    */
-    void CleanupIncompleteTestSession();
-
-    /**
-    * Finalizes test session. This will notify plug-ins, finalize DB record and
-    * notify application.
-    */
-    void FinalizeTestSessionL();
-
-private:    // private data
-    /**
-    * iViewAppUi - Reference to View App Ui. Passed to plug-ins to allow
-    * view switching.
-    */
-    CAknViewAppUi& iViewAppUi;
-
-    /**
-    * iObserver - reference to engine observer.
-    */
-    MDiagEngineObserver& iObserver;
-
-    /**
-    * iDbSession - Database session.
-    */
-    RDiagResultsDatabase& iDbSession;
-
-    /**
-    * iDbRecord - New record created for current test session.
-    */
-    RDiagResultsDatabaseRecord iDbRecord;
-
-    /**
-    * iRecordId - New record id created for current test session.
-    */
-    TUid iRecordId;
-
-    /**
-    * iPluginPool - Reference to the plug-in pool.
-    */
-    CDiagPluginPool& iPluginPool;
-
-    /**
-    * iCustomParam - Custom parameter.
-    * Ownership - Client.
-    */
-    TAny* iCustomParam;
-
-    /**
-    * iBatch - list of items to execute.
-    * Ownership - Individual elements are owned by plug-in pool. 
-    */
-    RPointerArray< MDiagPlugin > iBatch;
-
-    /**
-    * iWatchdogTimer - Timer for watchdog.
-    * Ownership - this
-    */
-    CPeriodic* iWatchdogTimer;
-
-    /**
-    * iLastWatchdogValue - Last watchdog value set.
-    *   This will be used when ResetWatchdog() is called without
-    *   any value specified.
-    */
-    TInt iLastWatchdogValue;
-
-    /**
-    * iPlan - Execution plan
-    * Ownership - this
-    */
-    CDiagPluginExecPlanImpl* iPlan;
-
-    /**
-    * iStateMachine - State machine.
-    * Ownership - this
-    */
-    DiagFwInternal::CStateMachine* iStateMachine;
-
-    /**
-    * iSuspendedPrevState - previous state just before suspended.
-    * This is used to resume to correct state.
-    */
-    DiagFwInternal::TState iSuspendedPrevState;
-
-    /**
-    * iSuspendReason - Reason why engine was suspended.
-    */
-    MDiagEngineObserver::TSuspendReason iSuspendReason;
-
-    /**
-    * iResumeReason - Reason why engine is resumed.
-    */
-    MDiagEngineObserver::TResumeReason iResumeReason;
-
-    /**
-    * iSuspendedResult - Temporary result from test plug-in when engine is 
-    * suspended. When test is suspended just before being able to save the
-    * test result, its result is saved here, so that when resumed
-    * it will use this result instead of re-executing.
-    * Ownership - this
-    */
-    CDiagResultsDatabaseItem* iSuspendedResult;
-    
-    /**
-    * iCallHandler - Handles call states
-    * Ownership - this
-    */
-    CDiagEngineCallHandler* iCallHandler;
-    
-    /**
-    * iContinueIncompleteRecord - Indicates whether engine is supposed to
-    *   continue from an incomplete record.
-    *   ETrue if engine is working with incomplete record.
-    *   EFalse if engine is working with a new record.
-    */
-    TBool iContinueIncompleteRecord;
-
-    /**
-    * iEngineConfig - Confiugration information about engine.
-    */
-    TDiagEngineConfig iEngineConfig;
-
-    /**
-    * iEngineError - Error code of engine.
-    */
-    TInt iEngineError;
-    };
-
-#endif // DIAGENGINEIMPL_H
-
-// End of File
-