devicediagnosticsfw/diagframework/src/diagexecplanentryimplsuite.cpp
branchRCL_3
changeset 61 b183ec05bd8c
parent 59 13d7c31c74e0
child 62 19bba8228ff0
--- a/devicediagnosticsfw/diagframework/src/diagexecplanentryimplsuite.cpp	Thu Aug 19 10:44:50 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,419 +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 definition of CDiagExecPlanEntryImplSuite
-*
-*/
-
-
-// CLASS DECLARATION
-#include "diagexecplanentryimplsuite.h"
-
-// SYSTEM INCLUDE FILES
-#include <DiagPlugin.h>                     // MDiagPlugin
-#include <DiagSuitePlugin.h>                // MDiagSuitePlugin
-#include <DiagFrameworkDebug.h>             // LOGSTRING
-#include <DiagSuiteExecParam.h>             // TDiagSuiteExecParam
-
-// USER INCLUDE FILES
-#include "diagframework.pan"                // Panics
-#include "diagexecplanentryimplobserver.h"  // MDiagExecPlanEntryImplObserver
-
-// DATA
-
-// MACROS
-
-// LOCAL DATA TYPES
-
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// CDiagExecPlanEntryImplSuite::NewL
-// ---------------------------------------------------------------------------
-//
-CDiagExecPlanEntryImplSuite* CDiagExecPlanEntryImplSuite::NewL(
-        MDiagEngineCommon& aEngine,
-        const TDiagEngineConfig& aEngineConfig,
-        MDiagExecPlanEntryImplObserver& aObserver,
-        MDiagSuitePlugin& aPlugin,
-        TBool aAsDependency,
-        CDiagExecPlanEntryImpl::TType aType )
-    {
-    CDiagExecPlanEntryImplSuite* self = NewLC( aEngine,
-                                               aEngineConfig,
-                                               aObserver,
-                                               aPlugin,
-                                               aAsDependency,
-                                               aType );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagExecPlanEntryImplSuite::NewLC
-// ---------------------------------------------------------------------------
-//
-CDiagExecPlanEntryImplSuite* CDiagExecPlanEntryImplSuite::NewLC(
-        MDiagEngineCommon& aEngine,
-        const TDiagEngineConfig& aEngineConfig,
-        MDiagExecPlanEntryImplObserver& aObserver,
-        MDiagSuitePlugin& aPlugin,
-        TBool aAsDependency,
-        CDiagExecPlanEntryImpl::TType aType )
-    {
-    CDiagExecPlanEntryImplSuite* self = 
-        new ( ELeave ) CDiagExecPlanEntryImplSuite ( aEngine,
-                                                     aEngineConfig,
-                                                     aObserver,
-                                                     aPlugin, 
-                                                     aAsDependency,
-                                                     aType );
-    CleanupStack::PushL( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CDiagExecPlanEntryImplSuite::CDiagExecPlanEntryImplSuite
-// ---------------------------------------------------------------------------
-//
-CDiagExecPlanEntryImplSuite::CDiagExecPlanEntryImplSuite( 
-        MDiagEngineCommon& aEngine,
-        const TDiagEngineConfig& aEngineConfig,
-        MDiagExecPlanEntryImplObserver& aObserver,
-        MDiagSuitePlugin& aPlugin,
-        TBool aAsDependency,
-        CDiagExecPlanEntryImpl::TType aType )
-    :   CDiagExecPlanEntryImpl( 
-            aEngine,
-            aEngineConfig,
-            aObserver,
-            aPlugin,
-            aAsDependency,
-            aType  )
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagExecPlanEntryImplSuite::~CDiagExecPlanEntryImplSuite
-// ---------------------------------------------------------------------------
-//
-CDiagExecPlanEntryImplSuite::~CDiagExecPlanEntryImplSuite()
-    {
-    Cancel();
-
-    if ( CDiagExecPlanEntryImpl::State() == EStateRunning )
-        {
-        TRAP_IGNORE( SuitePlugin().ExecutionStopL( MDiagSuitePlugin::ESkip ) )
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagExecPlanEntryImplSuite::SuitePlugin
-// ---------------------------------------------------------------------------
-//
-MDiagSuitePlugin& CDiagExecPlanEntryImplSuite::SuitePlugin()
-    {
-    // It is safe to typecast here, since CDiagExecPlanEntryImplSuite::NewL
-    // accepts only MDiagSuitePlugin&.
-    return static_cast< MDiagSuitePlugin& >( Plugin() );
-    }
-
-// ---------------------------------------------------------------------------
-// From CDiagExecPlanEntryImpl
-// CDiagExecPlanEntryImplSuite::ExecuteL
-// ---------------------------------------------------------------------------
-//
-void CDiagExecPlanEntryImplSuite::ExecuteL()
-    {
-    #ifdef _DEBUG
-    HBufC* pluginName = Plugin().GetPluginNameL( 
-        MDiagPlugin::ENameLayoutListSingle );
-    
-    LOGSTRING4( "---- SUITE BEGIN ---- [ 0x%08x %S / %s ] ---- SUITE BEGIN ---- {",
-        Plugin().Uid().iUid,
-        pluginName,
-        ( Type() == ETypeSuitePrepare ) ? L"PREPARE" : L"FINALIZE" )
-
-    delete pluginName;
-    pluginName = NULL;
-    #endif // _DEBUG
-
-    __ASSERT_DEBUG( State() == EStateQueued,
-                    Panic( EDiagFrameworkCorruptStateMachine ) );
-
-    ResetWatchdog( EDiagEngineWatchdogTypeAutomatic );
-    ChangeStateL( EStateRunning );
-
-    // Notify observer that progress is 0 of 1 since suite does not have progress.
-    Observer().ExecPlanEntryProgressL( *this, 0, 1 );
-
-    TDiagSuiteExecParam* execParam = new ( ELeave ) TDiagSuiteExecParam( *this, Engine() );
-    if ( Type() == CDiagExecPlanEntryImpl::ETypeSuitePrepare )
-        {
-        SuitePlugin().PrepareChildrenExecutionL( execParam,  // owership change
-                                                 Engine().IsDependencyDisabled(),
-                                                 AsDependency() );
-        }
-    else
-        {
-        SuitePlugin().FinalizeChildrenExecutionL( execParam, // owership change
-                                                  Engine().IsDependencyDisabled(),
-                                                  AsDependency() );
-        }
-
-    execParam = NULL; //lint !e423 execParam ownership changed.
-    }
-
-// ---------------------------------------------------------------------------
-// From CDiagExecPlanEntryImpl
-// CDiagExecPlanEntryImplSuite::StopExecutionByWatchdogL
-// ---------------------------------------------------------------------------
-//
-void CDiagExecPlanEntryImplSuite::StopExecutionByWatchdogL()
-    {
-    StopSuitePluginL( MDiagSuitePlugin::EWatchdog );
-    }
-
-// ---------------------------------------------------------------------------
-// From CDiagExecPlanEntryImpl
-// CDiagExecPlanEntryImplSuite::StopExecutionByClientL
-// ---------------------------------------------------------------------------
-//
-void CDiagExecPlanEntryImplSuite::DoStopExecutionByClientL( 
-        MDiagEngineCommon::TCancelMode aCancelMode )
-    {
-    MDiagSuitePlugin::TStopReason stopReason;
-
-    switch ( aCancelMode )
-        {
-        case MDiagEngineCommon::ECancelAll:
-            stopReason = MDiagSuitePlugin::ECancelAll;
-            break;
-
-        case MDiagEngineCommon::ESkip:
-            stopReason = MDiagSuitePlugin::ESkip;
-            break;
-
-        default:
-            __ASSERT_DEBUG( 0, Panic( EDiagFrameworkInternal ) );
-            stopReason = MDiagSuitePlugin::ESkip;
-            break;
-        }
-
-    StopSuitePluginL( stopReason );
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagExecPlanEntryImplSuite::StopSuitePluginL
-// ---------------------------------------------------------------------------
-//
-void CDiagExecPlanEntryImplSuite::StopSuitePluginL(
-        MDiagSuitePlugin::TStopReason aStopReason )
-    {
-    LOGSTRING3( "CDiagExecPlanEntryImplSuite::StopSuitePluginL(): "
-        L"Calling plugin uid = 0x%08x SuitePlugin::ExecutionStopL( %d )",
-        Plugin().Uid().iUid,
-        aStopReason )
-
-    Cancel();
-
-    switch ( State() )
-        {
-        case EStateQueued:      // fall through
-        case EStateInitDelay:   // fall through
-        case EStateStopped:     // fall through
-        case EStateSuspended:   // fall through
-        case EStateCompleted:
-            LOGSTRING3( "CDiagExecPlanEntryImplSuite::DoStopSuitePluginL(): "
-                L"Plugin 0x%08x = %d. Do nothing.",
-                Plugin().Uid().iUid,
-                State() )
-            break;
-
-        case EStateRunning:
-            LOGSTRING2( "CDiagExecPlanEntryImplSuite::DoStopSuitePluginL(): "
-                L"Plugin 0x%08x was in ERunning or ESuspended. Call Stop",
-                Plugin().Uid().iUid )
-            SuitePlugin().ExecutionStopL( aStopReason );
-            break;
-
-        default:
-            LOGSTRING3( "CDiagExecPlanEntryImplSuite::DoStopSuitePluginL(): "
-                L"Plugin 0x%08x = INVALID STATE! %d",
-                Plugin().Uid().iUid,
-                State() )
-            __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) );
-            break;
-        }
-
-    // Notify observer as if plug-in itself would have done.
-    ContinueExecutionL( SuitePlugin() );
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagExecPlanEntryImplSuite::SuspendL
-// ---------------------------------------------------------------------------
-//
-void CDiagExecPlanEntryImplSuite::SuspendL()
-    {
-    Cancel();
-
-    switch ( State() )
-        {
-        case EStateQueued:      // fall through
-        case EStateInitDelay:   // fall through
-            LOGSTRING3( "CDiagExecPlanEntryImplSuite::SuspendL(): "
-                L"Plugin 0x%08x = %d. Reset to Queued state",
-                Plugin().Uid().iUid,
-                State() )
-            // force reset the execution state to queued so that
-            // it will be restarted
-            ChangeStateL( EStateQueued );
-            break;
-
-        case EStateRunning:
-            LOGSTRING2( "CDiagExecPlanEntryImplSuite::SuspendL(): "
-                L"Plugin 0x%08x was in ERunning. Calling Stop",
-                Plugin().Uid().iUid )
-
-            // Suites do not have suspend. Stop with cancel as reason.
-            SuitePlugin().ExecutionStopL( MDiagSuitePlugin::ESkip );
-            // force reset the plugin execution to queued so that
-            // it will be restarted
-            ChangeStateL( EStateQueued );
-            break;
-
-        case EStateStopped:
-            LOGSTRING2( "CDiagExecPlanEntryImplSuite::SuspendL(): "
-                L"Plugin 0x%08x = Stopped.",
-                Plugin().Uid().iUid )
-            // plug-in is already stopped.
-            ChangeStateL( EStateSuspended );
-            break;
-
-        case EStateSuspended:
-            LOGSTRING2( "CDiagExecPlanEntryImplSuite::SuspendL(): "
-                L"Plugin 0x%08x = Suspended.",
-                Plugin().Uid().iUid )
-            // already suspneded. nothing to do.
-            break;
-
-        case EStateCompleted:
-            LOGSTRING2( "CDiagExecPlanEntryImplSuite::SuspendL(): "
-                L"Plugin 0x%08x was already in completed state. No change",
-                Plugin().Uid().iUid )
-            break;
-
-        default:
-            LOGSTRING3( "CDiagExecPlanEntryImplSuite::SuspendL(): "
-                L"Plugin 0x%08x = INVALID STATE! %d",
-                Plugin().Uid().iUid,
-                State() )
-            __ASSERT_DEBUG( 0, Panic( EDiagFrameworkCorruptStateMachine ) );
-            break;
-        }
-
-    // Postcondition. Check acceptble states.
-    __ASSERT_DEBUG( State() == EStateQueued ||
-                    State() == EStateSuspended ||
-                    State() == EStateCompleted,
-                    Panic( EDiagFrameworkCorruptStateMachine ) );
-    }
-
-// ---------------------------------------------------------------------------
-// CDiagExecPlanEntryImplSuite::ResumeL
-// ---------------------------------------------------------------------------
-//
-void CDiagExecPlanEntryImplSuite::ResumeL()
-    {
-    LOGSTRING3( "CDiagExecPlanEntryImplTest::ResumeL(): "
-        L"Plugin 0x%08x, State = %d", Plugin().Uid().iUid, State() )
-
-    __ASSERT_DEBUG( State() == EStateQueued ||
-                    State() == EStateSuspended,
-                    Panic( EDiagFrameworkCorruptStateMachine ) );
-
-    if ( State() == EStateQueued )
-        {
-        ExecuteL();
-        }
-    else
-        {
-        ContinueExecutionL( SuitePlugin() );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// From MDiagSuiteObserver
-// CDiagExecPlanEntryImplSuite::ContinueExecutionL
-// ---------------------------------------------------------------------------
-//
-void CDiagExecPlanEntryImplSuite::ContinueExecutionL( const MDiagSuitePlugin& aSender )
-    {
-    __ASSERT_ALWAYS( aSender.Uid() == Plugin().Uid(), Panic( EDiagFrameworkPlugin ) );
-
-    // Need to do an empty request complete since by default, suite plug-ins
-    // do nothing in prepare/finalize steps and just call ContinueExecutionL.
-    // Doing empty request complete ensures that Plug-in call back does not
-    // directly call application TestExecutionCompletedL() method.
-
-    ChangeStateL( EStateStopped );
-
-    TRequestStatus* status = &iStatus;
-    User::RequestComplete( status, KErrNone );
-    SetActive();
-    }
-
-// ---------------------------------------------------------------------------
-// From CActive
-// CDiagExecPlanEntryImplSuite::RunL
-// ---------------------------------------------------------------------------
-//
-void CDiagExecPlanEntryImplSuite::RunL()
-    {
-    ChangeStateL( EStateCompleted );
-
-    #ifdef _DEBUG
-    HBufC* pluginName = Plugin().GetPluginNameL( 
-        MDiagPlugin::ENameLayoutListSingle );
-    
-    LOGSTRING4( "} ---- SUITE END ---- [ 0x%08x %S / %s ] ---- SUITE END ----",
-        Plugin().Uid().iUid,
-        pluginName,
-        ( Type() == ETypeSuitePrepare ) ? L"PREPARE" : L"FINALIZE" )
-
-    delete pluginName;
-    pluginName = NULL;
-    #endif // _DEBUG
-
-    Observer().ExecPlanEntryExecutedL( *this );
-    }
-
-
-// ---------------------------------------------------------------------------
-// From CActive
-// CDiagExecPlanEntryImplSuite::DoCancel
-// ---------------------------------------------------------------------------
-//
-void CDiagExecPlanEntryImplSuite::DoCancel()
-    {
-    // nothing to do
-    }
-
-
-// End of File
-