diff -r e8c1ea2c6496 -r 8758140453c0 lbs/lbstestutils/src/ctlbstimerutils.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lbs/lbstestutils/src/ctlbstimerutils.cpp Thu Jan 21 12:53:44 2010 +0000 @@ -0,0 +1,154 @@ +// 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 ctlbstimerutils.cpp +// +// + + +#include "ctlbstimerutils.h" + + +/** + Function : NewL + Description : It performs the two construction and returns an object + of type CT_MsgTimerUtils + @internalTechnology + @param : + @return : N/A + @precondition : none + @postcondition : none +*/ +EXPORT_C CT_LbsTimerUtils* CT_LbsTimerUtils::NewL(MT_LbsTimerUtilsObserver* aObserver, TInt aTimerId) + { + CT_LbsTimerUtils* self = new(ELeave) CT_LbsTimerUtils(aObserver, aTimerId); + + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(); + + return self; + } + + +/** + Function : CT_MsgTimerUtils + Description : Constructor + @internalTechnology + @param : + @return : N/A + @precondition : none + @postcondition : none +*/ +CT_LbsTimerUtils::CT_LbsTimerUtils(MT_LbsTimerUtilsObserver* aObserver, TInt aTimerId) + : + CTimer(CTimer::EPriorityHigh), + iObserver(aObserver), + iTimerId(aTimerId) + { + CActiveScheduler::Add(this); + } + + +/** + Function : ~CT_MsgTimerUtils + Description : Destructor + @internalTechnology + @param : + @return : N/A + @precondition : none + @postcondition : none +*/ +EXPORT_C CT_LbsTimerUtils::~CT_LbsTimerUtils() + { + Cancel(); + } + +void CT_LbsTimerUtils::ConstructL() + { + CTimer::ConstructL(); + } + + +/** + Function : After + Description : Calls the After function CTimer for the given number of secs + @internalTechnology + @param : + @return : N/A + @precondition : none + @postcondition : none +*/ +EXPORT_C void CT_LbsTimerUtils::SetTimer(const TTimeIntervalMicroSeconds32 aPeriod) +{ + iTargetTime = 0; + HighRes(aPeriod); +} + + +EXPORT_C void CT_LbsTimerUtils::SetTimer(const TTime& aUtcTargetTime) + { + Cancel(); + + iTargetTime = aUtcTargetTime; + + TTime zeroTime(0); + + if (aUtcTargetTime == zeroTime) + { + return; + } + + TTime timeNow; + timeNow.UniversalTime(); + + TTimeIntervalMicroSeconds delay(0); + + if (timeNow < aUtcTargetTime) + { + delay = aUtcTargetTime.MicroSecondsFrom(timeNow); + } + + TInt delay32 = static_cast(I64LOW(delay.Int64())); + + if (delay32 < 0) + { + delay32 = 0; + } + + TTimeIntervalMicroSeconds32 time32 = TTimeIntervalMicroSeconds32(delay32); + + HighRes(time32); + } + +EXPORT_C void CT_LbsTimerUtils::CancelTimer() + { + Cancel(); + } + +/** + Function : RunL + Description : Gives the status of the operation + @internalTechnology + @param : + @return : N/A + @precondition : none + @postcondition : none +*/ +void CT_LbsTimerUtils::RunL() + { + if (iObserver) + { + iObserver->HandleTimerL(iTimerId, iTargetTime); + } + }