diff -r 13d7c31c74e0 -r b183ec05bd8c devicediagnosticsfw/diagframework/inc/diagexecplanentryimpl.h --- a/devicediagnosticsfw/diagframework/inc/diagexecplanentryimpl.h Thu Aug 19 10:44:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,297 +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 CDiagExecPlanEntryImpl -* -*/ - - -#ifndef DIAGEXECPLANENTRYIMPL_H -#define DIAGEXECPLANENTRYIMPL_H - -// SYSTEM INCLUDE FILES -#include // CBase -#include // MDiagExecPlanEntry -#include // MDiagEngineCommon::TCancelMode - -class MDiagExecPlanEntryImplObserver; -class TDiagEngineConfig; - -/** -* Diagnostics Plug-in Execution Plan Entry Implementation. -* -* This class implements MDiagExecPlanEntry. It is meant to be private -* to Diagnostics Framework and not exported. -* -* @since S60 v5.0 -* -*/ -NONSHARABLE_CLASS( CDiagExecPlanEntryImpl ) : public CActive, - public MDiagExecPlanEntry - { -public: // Data Types - /** - * TType - Execution plan entry type. - * ETypeTestExec - Test plugin execution. - * ETypeSuitePrepare - Suite prepare execution - * ETypeSuiteFinalize - Suite finalize execution - * ETypeSuiteUnexpanded - Suite before being expanded into - * ETypeSuitePrepare or ETypeSuiteFinalize - */ - enum TType - { - ETypeTestExec = 0, - ETypeSuitePrepare, - ETypeSuiteFinalize, - ETypeSuiteUnexpanded, - }; - -public: // Public API - /** - * C++ destructor - */ - virtual ~CDiagExecPlanEntryImpl(); - - /** - * Plugin associated with the entry - * @return Reference to the plugin. - */ - MDiagPlugin& Plugin(); //lint !e1411 This is proper overload - - /** - * Get item type - * @return current item type - */ - TType Type() const; - - /** - * Update item type - * @param aType - new type. - */ - void SetType( TType aType ); - - /** - * Update dependency - * @param aAsDependency - ETrue if item is being executed to satisfy - * dependency. EFalse otherwise. - */ - void SetAsDependency( TBool aAsDependency ); - - /** - * Handle cancel execution by client. Calling this will case IsStoppedByClient() - * to return ETrue. - * - * @param aCancelMode - Cancellation mode. - */ - void StopExecutionByClientL( MDiagEngineCommon::TCancelMode aCancelMode ); - - /** - * Check if test was stopped by client. - * - * @return ETrue if it was stopped by StopExecutionByClientL call. - * EFalse otherwise. - */ - TBool IsStoppedByClient() const; - - /** - * Reset Watchdog to last known value. - * If watchdog was suspended, it will resume. - * If watchdog was not running, this does nothing. - */ - void ResetWatchdog(); - - /** - * Reset Watchdog to one of the default based on watchdog type - * If watchdog was suspended, it will resume. - * If watchdog was not running, this does nothing. - * @param aWatchdogType - type of watchdog to use. - */ - void ResetWatchdog( TDiagEngineWatchdogTypes aWatchdogType ); - - /** - * Reset watchdog to a specific value. - * If watchdog was suspended, it will resume. - * If watchdog was not running, this does nothing. - * @param aTimer value - watchdog timer value. - */ - void ResetWatchdog( TTimeIntervalMicroSeconds32 aWatchdogValue ); - - /** - * Stop watchdog temporarily. - */ - void StopWatchdogTemporarily(); - -public: // APIs to be implemented by derived class - /** - * Execute plan entry. To cancel request, call Cancel() - */ - virtual void ExecuteL() = 0; - - /** - * Suspend execution. - */ - virtual void SuspendL() = 0; - - /** - * Resume suspended execution. - */ - virtual void ResumeL() = 0; - -public: // From MDiagExecPlanEntry - /** - * Plugin associated with the entry - * @see MDiagExecPlanEntry::Plugin - */ - const MDiagPlugin& Plugin() const; - - /** - * Returns whether item is being executed to satisfy dependency or not. - * @see MDiagExecPlanEntry::AsDepndent - */ - TBool AsDependency() const; - - /** - * Item State - * @see MDiagExecPlanEntry::State - */ - TState State() const; - - -protected: // API for derived class - /** - * C++ Constructor - * This is protected since it should not be created directly. - * Use one of the derived class version. - * - * @param aEngine - Reference to the engine. - * @param aEngineConifg - Reference to the engine configuration. - * @param aPlugin - Reference to the plug-in. - * @param aAsDependent - Whether it is being executed as dependent test. - * @param aType - Type of entry. @see CDiagExecPlanEntryImpl::TType - */ - CDiagExecPlanEntryImpl( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagPlugin& aPlugin, - TBool aAsDependency, - TType aType ); - - /** - * Get Engine reference - * - * @return reference to engine. - */ - MDiagEngineCommon& Engine(); - - /** - * Get Engine configuration reference - * - * @return Reference to engine configuration. - */ - const TDiagEngineConfig& EngineConfig() const; - - /** - * Get observer. - * - * @return Reference to plan entry observer. - */ - MDiagExecPlanEntryImplObserver& Observer(); - - /** - * Change current state to a new state. - * @param aState - new state to set to. - */ - void ChangeStateL( TState aState ); - -protected: // API to be implemented by derived class. - /** - * Handle cancel execution by client. - * - * @param aCancelMode - Cancellation mode. - */ - virtual void DoStopExecutionByClientL( MDiagEngineCommon::TCancelMode aCancelMode ) = 0; - - /** - * Watchdog timeout stop. - */ - virtual void StopExecutionByWatchdogL() = 0; - - -private: // private methods - /** - * Watchdog timer timeout handler. - * @param aPtr - pointer to *this* object. - */ - static TInt WatchdogTimerExpiredL( TAny* aPtr ); - -private: // Private data - /** - * Engine - */ - MDiagEngineCommon& iEngine; - - /** - * Engine Configuration. - */ - const TDiagEngineConfig& iEngineConfig; - - /** - * Observer - */ - MDiagExecPlanEntryImplObserver& iObserver; - - /** - * Plug-in - */ - MDiagPlugin& iPlugin; - - /** - * Indicates whether it is being executed as dependent test. - */ - TBool iAsDependency; - - /** - * Indicates whether execution is stopped by client. - */ - TBool iStoppedByClient; - - /** - * Current item state - * @see MDiagExecPlanEntry::TState - */ - TState iState; - - /** - * Current item type - * @see CDiagExecPlanEntryImpl::TType - */ - TType iType; - - /** - * Watchdog timer value. It is a microsecond value to be used with - * watchdog timer. - */ - TTimeIntervalMicroSeconds32 iWatchdogValue; - - /** - * Watchdog timer - * Owership: this. - */ - CPeriodic* iWatchdogTimer; - - }; - -#endif // DIAGEXECPLANENTRY_H - -// End of File -