aozhiwei 1711af9db5 1
2024-12-21 19:32:42 +08:00

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;
};
}