diff -r b183ec05bd8c -r 19bba8228ff0 devicediagnosticsfw/diagframework/inc/diagexecplanentryimplsuite.h --- /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 // MDiagSuitePlugin::TStopReason +#include // 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 +