diff -r b18be44be852 -r d5603c08781b common/tools/ats/smoketest/email/framework/src/T_MsgAsyncStep.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/common/tools/ats/smoketest/email/framework/src/T_MsgAsyncStep.cpp Fri Oct 30 09:36:23 2009 +0000 @@ -0,0 +1,140 @@ +// Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// @file +// [Test Step] : +// AsyncStep +// Ownes a Active Object for async operations. +// +// + + + +/* User includes */ +#include "T_MsgAsyncStep.h" + + +/* Literals Used */ +_LIT(KProgressTime, "ProgressTime"); +_LIT(KCancelTime, "CancelTime"); + + +/** + Function : CT_MsgAsyncStep + Description : Constructor + @return : N/A +*/ +CT_MsgAsyncStep::CT_MsgAsyncStep() +: CT_MsgStep() +, iActive(NULL) +, iTimerCancel(NULL) +, iTimerProgress(NULL) +, iTimeProgress(0) + { + } + + + +/** + Function : ConstructL + Description : Creates an object of the active object and timer + @return : N/A +*/ +void CT_MsgAsyncStep::ConstructL() + { + iActive = CT_MsgActive::NewL(*this); + iTimerCancel = CT_MsgTimer::NewL(*this); + iTimerProgress= CT_MsgTimer::NewL(*this); + } + + + +/** + Function : ~CT_MsgAsyncStep + Description : Destructor + @return : N/A +*/ +CT_MsgAsyncStep::~CT_MsgAsyncStep() + { + delete iTimerProgress; + iTimerProgress=NULL; + + delete iTimerCancel; + iTimerCancel=NULL; + + delete iActive; + iActive=NULL; + } + + + +/** + Function : Completed + Description : Cancels the wait for completion of an outstanding request + @return : N/A +*/ +void CT_MsgAsyncStep::Completed() + { + iTimerProgress->Cancel(); + iTimerCancel->Cancel(); + ProgressL(ETrue); + CActiveScheduler::Stop(); + } + + +/** + Function : TimerCompletedL + Description : Sets the progress information and cancel information accordingly + @return : none +*/ +void CT_MsgAsyncStep::TimerCompletedL(CTimer* aTimer) + { + if ( aTimer==iTimerProgress ) + { + INFO_PRINTF1(_L("Calling ProgressL(EFalse)")); + ProgressL(EFalse); + iTimerProgress->After(iTimeProgress); + } + else if ( aTimer==iTimerCancel ) + { + INFO_PRINTF1(_L("Calling Cancel()")); + iTimerProgress->Cancel(); + CancelStep(); + CActiveScheduler::Stop(); + } + } + + + +/** + Function : doTestStepPreambleL + Description : Call the doTestStepPreambleL of the CTestStep class + Reads the porgress time and cancel time from the ini + @return : TVerdict result +*/ +enum TVerdict CT_MsgAsyncStep::doTestStepPreambleL() + { + TVerdict ret=CTestStep::doTestStepPreambleL(); + + if( GetIntFromConfig( ConfigSection(), KProgressTime, iTimeProgress) ) + { + iTimerProgress->After(iTimeProgress); + } + + TInt time = 0; + if( GetIntFromConfig( ConfigSection(), KCancelTime, time) ) + { + iTimerCancel->After(time); + } + return ret; + }