uirefreshtimer.cpp
来自「国内著名嵌入式培训机构内部资料,内含一些实例代码,包括技术专题书籍」· C++ 代码 · 共 89 行
CPP
89 行
/*
============================================================================
Name : UiRefreshTimer.cpp
Author :
Version : 1.0
Copyright : Your copyright notice
Description : CUiRefreshTimer implementation
============================================================================
*/
#include "UiRefreshTimer.h"
CUiRefreshTimer::CUiRefreshTimer() :
CActive(EPriorityStandard) // Standard priority
{
m_pObserver=NULL;
}
CUiRefreshTimer* CUiRefreshTimer::NewLC()
{
CUiRefreshTimer* self = new ( ELeave ) CUiRefreshTimer();
CleanupStack::PushL(self);
self->ConstructL();
return self;
}
CUiRefreshTimer* CUiRefreshTimer::NewL()
{
CUiRefreshTimer* self = CUiRefreshTimer::NewLC();
CleanupStack::Pop(); // self;
return self;
}
void CUiRefreshTimer::ConstructL()
{
User::LeaveIfError(iTimer.CreateLocal() ); // Initialize timer
CActiveScheduler::Add( this); // Add to scheduler
}
void CUiRefreshTimer::SetObserver(MUiRefreshTimerObserver* pObserver)
{
m_pObserver=pObserver;
}
CUiRefreshTimer::~CUiRefreshTimer()
{
Cancel(); // Cancel any request, if outstanding
iTimer.Close(); // Destroy the RTimer object
// Delete instance variables if any
}
void CUiRefreshTimer::DoCancel()
{
iTimer.Cancel();
}
void CUiRefreshTimer::StartL(TTimeIntervalMicroSeconds32 aDelay)
{
Cancel(); // Cancel any request, just to be sure
iState = EUninitialized;
iTimer.After(iStatus, aDelay); // Set for later
SetActive(); // Tell scheduler a request is active
}
void CUiRefreshTimer::RunL()
{
if (iState == EUninitialized)
{
// Do something the first time RunL() is called
iState = EInitialized;
}
else
if (iState != EError)
{
// Do something
}
if(m_pObserver)
m_pObserver->NotifyRefresh();
iTimer.After(iStatus, 1000000); // Set for 1 sec later
SetActive(); // Tell scheduler a request is active
}
TInt CUiRefreshTimer::RunError(TInt aError)
{
return aError;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?