40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
#pragma once
|
|
|
|
namespace f8
|
|
{
|
|
|
|
class Timer
|
|
{
|
|
A8_DECLARE_SINGLETON(Timer);
|
|
public:
|
|
void Init();
|
|
void UnInit();
|
|
bool Initialized();
|
|
void Update();
|
|
|
|
void SetTimeout(int expire_time, a8::TimerCb cb);
|
|
void SetTimeoutEx(int expire_time, a8::TimerCb cb, Attacher* attacher);
|
|
TimerWp SetTimeoutWp(int expire_time, a8::TimerCb cb);
|
|
TimerWp SetTimeoutWpEx(int expire_time, a8::TimerCb cb, Attacher* attacher);
|
|
|
|
void SetInterval(int expire_time, a8::TimerCb cb);
|
|
void SetIntervalEx(int expire_time, a8::TimerCb cb, Attacher* attacher);
|
|
TimerWp SetIntervalWp(int expire_time, a8::TimerCb cb);
|
|
TimerWp SetIntervalWpEx(int expire_time, a8::TimerCb cb, Attacher* attacher);
|
|
|
|
void FireEvent(TimerWp& timer_wp, int event, a8::Args* args);
|
|
void ModifyTime(TimerWp& timer_wp, int expire_time);
|
|
void Delete(TimerWp& timer_wp);
|
|
long long GetRemainTime(TimerWp& timer_wp);
|
|
void DeleteCurrentTimer();
|
|
bool IsRunning();
|
|
long long GetIdleTime();
|
|
|
|
private:
|
|
std::shared_ptr<class TimerImpl> impl_;
|
|
|
|
friend class Attacher;
|
|
};
|
|
|
|
}
|