#include <E32Base.h
#include <E32Std.h> #include "TimerTool.h"
CTimerTool* CTimerTool::NewL(MTimerToolObserver& aObserver)
{
CTimerTool* iSelf = new (ELeave) CTimerTool(aObserver);
CleanupStack::PushL(iSelf);
iSelf->ConstructL();
CleanupStack::Pop();
return iSelf;
}
CTimerTool::CTimerTool(MTimerToolObserver& aObserver) : CActive(EPriorityStandard), iObserver(aObserver)
{
}
void CTimerTool::ConstructL()
{
User::LeaveIfError(iTimer.CreateLocal());
CActiveScheduler::Add(this);
}
CTimerTool::~CTimerTool()
{
Deque();
iTimer.Close();
}
void CTimerTool::Start(TTimeIntervalMicroSeconds32 aInterval)
{
iTimer.After(iStatus,aInterval);
SetActive();
}
void CTimerTool::Stop()
{
Cancel();
}
void CTimerTool::DoCancel()
{
iTimer.Cancel();
}
void CTimerTool::RunL()
{
iObserver.HandleTimerToolEventL(MTimerToolObserver::ETimerExpired);
}