diff -r bbd31066657e -r 8bb370ba6d1d testexecfw/stf/stfext/testmodules/teftestmod/teftestmodulefw/utils/inc/testblockcontroller.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecfw/stf/stfext/testmodules/teftestmod/teftestmodulefw/utils/inc/testblockcontroller.h Fri Apr 09 10:46:28 2010 +0800 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2005-2009 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: +* @file +* This contains TestBlockController.h +* +*/ + + + +#ifndef __TEST_BLOCK_CONTROLLER_H__ +#define __TEST_BLOCK_CONTROLLER_H__ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +class CTestBlockController : public CTestStep, public MTEFResult, public MTEFTimerCallback, public MCommandProcessorCallback +/** + * @publishedPartner + * @test + * + * @see CTestStep + * @see MTEFResult + * @see MTEFTimerCallback + * @see MCommandProcessorCallback + */ + { +public: + IMPORT_C CTestBlockController(); + IMPORT_C virtual ~CTestBlockController(); + IMPORT_C void SetBlockArray( TTEFItemArray* aBlockArray ); + IMPORT_C void SetSharedData( MSharedData* aSharedData ); + + IMPORT_C virtual CDataWrapper* CreateDataL( const TDesC& aData ) =0; + + // CTestStep implementations + IMPORT_C virtual TVerdict doTestStepPreambleL(); + IMPORT_C virtual TVerdict doTestStepL(); + IMPORT_C virtual TVerdict doTestStepPostambleL(); + + // MTEFResult implementation + IMPORT_C virtual void SetError(const TInt aError); + IMPORT_C virtual void SetAsyncError(const TInt aIndex, const TInt aError); + IMPORT_C virtual void SetBlockResult(const TVerdict aResult); + IMPORT_C virtual TVerdict BlockResult(); + + // MTEFTimerCallback implementation + IMPORT_C virtual void TimerCompleted(); + + // MCommandProcessorCallback implementation + IMPORT_C virtual void NextCommandL(); + +protected: + IMPORT_C void StartCommands(); + IMPORT_C virtual TBool DoCommandL(TTEFBlockItem& aCommand, const TInt aAsyncErrorIndex); + + inline void CreateObjectL(TTEFBlockItem& aCommand); + inline void RestoreObjectL(TTEFBlockItem& aCommand); + inline void StoreL(TTEFBlockItem& aCommand); + inline void StoreActiveScheduler(TTEFBlockItem& aCommand); + inline void CommandL(TTEFBlockItem& aCommand, const TInt aAsyncErrorIndex); + +private: + class CBlockActiveScheduler : public CActiveScheduler + { + public: + IMPORT_C CBlockActiveScheduler(CTestBlockController& aTestStep); + IMPORT_C virtual ~CBlockActiveScheduler(); + IMPORT_C virtual void Error(TInt aError) const; + + private: + CTestStep& iTestStep; + }; + + TTEFItemArray* iBlockArray; + CDataDictionary iDataDictionary; + CCommandProcessor* iCommandProcessor; + CActiveScheduler* iActiveScheduler; + CTEFTimer* iTimer; + CPeriodic* iPeriodic; + TBool iAsyncTimer; + TBool iTimerActive; + TInt iCommandIndex; + TInt iAsyncCount; + MSharedData* iSharedData; + TBool iDeleteSharedScheduler; + + // Helper methods + IMPORT_C void StartTimer(const TTEFBlockItem& aCommand); + IMPORT_C void CancelTimer(); + + // CPerodic callback + IMPORT_C static TBool OutstandingCallback( TAny* aAny ); + IMPORT_C void OutstandingCallback(); + + inline void IncAsyncCount(); + inline void DecAsyncCount(); + }; + +#include + +#endif // __TEST_BLOCK_CONTROLLER_H__