diff -r 13d7c31c74e0 -r b183ec05bd8c devicediagnosticsfw/diagframework/inc/diagexecplanentryimpltest.h --- a/devicediagnosticsfw/diagframework/inc/diagexecplanentryimpltest.h Thu Aug 19 10:44:50 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,254 +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 CDiagExecPlanEntryImplTest -* -*/ - - -#ifndef DIAGEXECPLANENTRYIMPLTEST_H -#define DIAGEXECPLANENTRYIMPLTEST_H - -// SYSTEM INCLUDE FILES -#include // CDiagResultsDatabaseItem::TResult -#include // MDiagTestObserver -#include // MDiagTestPlugin::TStopReason - -// USER INCLUDE FILES -#include "diagexecplanentryimpl.h" // CDiagExecPlanEntryImpl - -// FORWARD DECLARATION -class MDiagTestPlugin; - -/** -* Diagnostics Plug-in Execution Plan Entry Implementation for test plugin -* -* This class implements CDiagExecPlanEntryImplTest. It is meant to be private -* to Diagnostics Framework and not exported. -* -* @since S60 v5.0 -* -*/ -NONSHARABLE_CLASS( CDiagExecPlanEntryImplTest ): public CDiagExecPlanEntryImpl, - public MDiagTestObserver - { -public: // Public constructors and destructors - /** - * Symbian two-phased constructor - * - * @param aEngine - Diagnostics Engine - * @param aEngineConig - Engine configuration. - * @param aObserver - Execution plan entry observer. - * @param aPlugin - Test plug-in that this plan entry represents. - * @param aAsDependency - Whether this item is being executed as dependency or not. - * @param aResult - Initial result. - * - * @return a new instance of CDiagExecPlanEntryImplTest - */ - static CDiagExecPlanEntryImplTest* NewL( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagTestPlugin& aPlugin, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Symbian two-phased constructor. - * This will put an entry in cleanup stack. - * - * @param aEngine - Diagnostics Engine - * @param aEngineConig - Engine configuration. - * @param aObserver - Execution plan entry observer. - * @param aPlugin - Test plug-in that this plan entry represents. - * @param aAsDependency - Whether this item is being executed as dependency or not. - * @param aResult - Initial result. - * - * @return a new instance of CDiagExecPlanEntryImplTest - */ - static CDiagExecPlanEntryImplTest* NewLC( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagTestPlugin& aPlugin, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResult ); - - /** - * C++ destructor - */ - virtual ~CDiagExecPlanEntryImplTest(); - -public: // new public api - /** - * Get test result - * @return Test result enum. - */ - CDiagResultsDatabaseItem::TResult Result() const; - - /** - * Set test result - * @param aResult - Test result. - */ - void SetResult( CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Get result database item. If cached value is available, it will use - * cached value. Otherwise, it will retrieve from database. - * @return Test result item from database. Ownership is transferred. - */ - CDiagResultsDatabaseItem* GetLastTestResultL(); - - /** - * Get test plugin associated. - * @return a reference to test plug-in that this entry represents. - */ - MDiagTestPlugin& TestPlugin(); - -private: // from CActive - /* - * @see CActive::RunL - */ - virtual void RunL(); - - /* - * @see CActive::DoCancel - */ - virtual void DoCancel(); - - /* - * @see CActive::RunError - */ - virtual TInt RunError( TInt aError ); - -private: // from CDiagExecPlanEntryImpl - /** - * @see CDiagExecPlanEntryImpl::ExecuteL - */ - virtual void ExecuteL(); - - /** - * @see CDiagExecPlanEntryImpl::StopExecutionByWatchdogL - */ - virtual void StopExecutionByWatchdogL(); - - /** - * @see CDiagExecPlanEntryImpl::DoStopExecutionByClientL - */ - virtual void DoStopExecutionByClientL( MDiagEngineCommon::TCancelMode aCancelMode ); - - /** - * @see CDiagExecPlanEntryImpl::SuspendL - */ - virtual void SuspendL(); - - /** - * @see CDiagExecPlanEntryImpl::ResumeL - */ - virtual void ResumeL(); - -private: // from MDiagTestObserver - /** - * Notify engine of test plug-in execution progress. - * @see MDiagTestObserver::TestProgressL - */ - virtual void TestProgressL( const MDiagTestPlugin& aSender, - TUint aCurrentStep ); - - /** - * Notify engine of test plug-in execution completion. - * @see MDiagTestObserver::TestExecutionCompletedL - */ - virtual void TestExecutionCompletedL( const MDiagTestPlugin& aSender, - CDiagResultsDatabaseItem* aTestResult ); - - -private: // Private methods - /** - * c++ constructor. - * - * @param aEngine - Diagnostics Engine - * @param aEngineConig - Engine configuration. - * @param aObserver - Execution plan entry observer. - * @param aPlugin - Test plug-in that this plan entry represents. - * @param aAsDependency - Whether this item is being executed as dependency or not. - * @param aResult - Initial result. - */ - CDiagExecPlanEntryImplTest( MDiagEngineCommon& aEngine, - const TDiagEngineConfig& aEngineConfig, - MDiagExecPlanEntryImplObserver& aObserver, - MDiagTestPlugin& aPlugin, - TBool aAsDependency, - CDiagResultsDatabaseItem::TResult aResult ); - - /** - * Starts executing test. - */ - void DoExecuteTestPluginL(); - - /** - * Stop test plugin - */ - CDiagResultsDatabaseItem* StopTestPluginL( MDiagTestPlugin::TStopReason aReason ); - - /** - * Handler function for initial delay timer expiration. - */ - static TInt HandleDelayTimerExpiredL( TAny* aData ); - - /** - * Stop initial delay timer. - */ - void StopInitDelayTimer(); - - /** - * Stop all active requests and timers. - */ - void StopAll(); - - /** - * Stops test execution, but test result is not reported. - */ - void StopExecutionAndIgnoreResultL(); - - /** - * Get human readable name for test result. This is meant for debugging - * purpose only. In non-debug build, it will return empty string. - */ - static const TDesC& TestResultString( CDiagResultsDatabaseItem::TResult aResult ); - - -private: // private data - /** - * Test result - */ - CDiagResultsDatabaseItem::TResult iResult; - - /** - * Plugin test initial delay timer. - * Ownership - this - */ - CPeriodic* iInitDelayTimer; - - /** - * Cached test result. This stores test result temporarily, so that database access - * could be avoided. Currently, cache will remain only for one request after - * test is completed. - * Ownership - this - */ - CDiagResultsDatabaseItem* iCachedResult; - - }; - -#endif // DIAGEXECPLANENTRYIMPLTEST_H - -// End of File -