diff -r 6b1d113cdff3 -r 6638e7f4bd8f smsprotocols/smsstack/smsu/src/smsutimer.cpp --- a/smsprotocols/smsstack/smsu/src/smsutimer.cpp Mon May 03 13:37:20 2010 +0300 +++ b/smsprotocols/smsstack/smsu/src/smsutimer.cpp Thu May 06 15:10:38 2010 +0100 @@ -1,118 +1,118 @@ -// Copyright (c) 1998-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: -// Implements CSmsuTimeout -// -// - -/** - @file -*/ - -#include "SmsuTimer.h" - -#include - -#include "smsumain.h" -#include "smsstacklog.h" - -/** - * 2 phase contructor - * - * @param aActive Reference to an active observer - */ -CSmsuTimeout* CSmsuTimeout::NewL(CSmsuActiveBase& aActive) - { - LOGSMSU1("CSmsuTimeout::NewL()"); - - CSmsuTimeout* self = new(ELeave) CSmsuTimeout(aActive); - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -/** - * D'tor - */ -CSmsuTimeout::~CSmsuTimeout() - { - Cancel(); - } - - -/** - * Start a timeout specified in aTimeIntervalMicroSeconds32 - */ -void CSmsuTimeout::Start(const TTimeIntervalMicroSeconds32& aTimeIntervalMicroSeconds32) - { - LOGSMSU1("CSmsuTimeout::Start()"); - - iTimedOut = EFalse; - After(aTimeIntervalMicroSeconds32); - } // CSmsuTimeout::Start - - -/** - * C'tor - */ -CSmsuTimeout::CSmsuTimeout(CSmsuActiveBase& aActive) - : CTimer(aActive.Priority()), - iActive(aActive), - iTimedOut(EFalse), - iCompleteMyselfRequested(EFalse) - { - LOGSMSU1("CSmsuTimeout::CSmsuTimeout()"); - - CActiveScheduler::Add(this); - } // CSmsuTimeout::CSmsuTimeout - - -/** - * Timer completed - cancel the observer - */ -void CSmsuTimeout::RunL() - { - LOGSMSU2("CSmsuTimeout::RunL [iStatus=%d]", iStatus.Int() ); - iTimedOut = ETrue; - iActive.Cancel(); - - // - // It would be nice to call a DoTimeout() function here, - // and give the client the option of deciding what to do - // next, but that would be a BC break. - // - // So instead, we can do the next best thing. If the client - // calls CSmsuActiveBase::CompleteMyselfAfterTimeout() after - // a timeout (but within the DoCancel() function) then - // we now call the complete method - thereby restarting - // the active object outside of the Cancel(). - // - if (iCompleteMyselfRequested) - { - iActive.CompleteMyself(iCompleteMyselfStatus); - iCompleteMyselfRequested = EFalse; - } - } // CSmsuTimeout::RunL - - -void CSmsuTimeout::RequestCompleteMyselfAfterCancel(TInt aStatus) - { - // Ignore in code coverage - not used within the SMS stack. - BULLSEYE_OFF - __ASSERT_DEBUG(iCompleteMyselfRequested == EFalse, SmsuPanic(ESmsuCompleteMyselfAlreadyRequested)); - - iCompleteMyselfRequested = ETrue; - iCompleteMyselfStatus = aStatus; - BULLSEYE_RESTORE - } +// Copyright (c) 1998-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: +// Implements CSmsuTimeout +// +// + +/** + @file +*/ + +#include "SmsuTimer.h" + +#include + +#include "smsumain.h" +#include "smsstacklog.h" + +/** + * 2 phase contructor + * + * @param aActive Reference to an active observer + */ +CSmsuTimeout* CSmsuTimeout::NewL(CSmsuActiveBase& aActive) + { + LOGSMSU1("CSmsuTimeout::NewL()"); + + CSmsuTimeout* self = new(ELeave) CSmsuTimeout(aActive); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +/** + * D'tor + */ +CSmsuTimeout::~CSmsuTimeout() + { + Cancel(); + } + + +/** + * Start a timeout specified in aTimeIntervalMicroSeconds32 + */ +void CSmsuTimeout::Start(const TTimeIntervalMicroSeconds32& aTimeIntervalMicroSeconds32) + { + LOGSMSU1("CSmsuTimeout::Start()"); + + iTimedOut = EFalse; + After(aTimeIntervalMicroSeconds32); + } // CSmsuTimeout::Start + + +/** + * C'tor + */ +CSmsuTimeout::CSmsuTimeout(CSmsuActiveBase& aActive) + : CTimer(aActive.Priority()), + iActive(aActive), + iTimedOut(EFalse), + iCompleteMyselfRequested(EFalse) + { + LOGSMSU1("CSmsuTimeout::CSmsuTimeout()"); + + CActiveScheduler::Add(this); + } // CSmsuTimeout::CSmsuTimeout + + +/** + * Timer completed - cancel the observer + */ +void CSmsuTimeout::RunL() + { + LOGSMSU2("CSmsuTimeout::RunL [iStatus=%d]", iStatus.Int() ); + iTimedOut = ETrue; + iActive.Cancel(); + + // + // It would be nice to call a DoTimeout() function here, + // and give the client the option of deciding what to do + // next, but that would be a BC break. + // + // So instead, we can do the next best thing. If the client + // calls CSmsuActiveBase::CompleteMyselfAfterTimeout() after + // a timeout (but within the DoCancel() function) then + // we now call the complete method - thereby restarting + // the active object outside of the Cancel(). + // + if (iCompleteMyselfRequested) + { + iActive.CompleteMyself(iCompleteMyselfStatus); + iCompleteMyselfRequested = EFalse; + } + } // CSmsuTimeout::RunL + + +void CSmsuTimeout::RequestCompleteMyselfAfterCancel(TInt aStatus) + { + // Ignore in code coverage - not used within the SMS stack. + BULLSEYE_OFF + __ASSERT_DEBUG(iCompleteMyselfRequested == EFalse, SmsuPanic(ESmsuCompleteMyselfAlreadyRequested)); + + iCompleteMyselfRequested = ETrue; + iCompleteMyselfStatus = aStatus; + BULLSEYE_RESTORE + }