This commit is contained in:
aozhiwei 2022-12-17 14:06:02 +08:00
parent db10c37c68
commit c4429a36a8
2 changed files with 172 additions and 0 deletions

106
f8/timer.cc Normal file
View File

@ -0,0 +1,106 @@
#include <a8/a8.h>
#include <f8/f8.h>
#include <f8/timer.h>
namespace f8
{
Attacher::Attacher()
{
}
void Timer::Init()
{
}
void Timer::UnInit()
{
}
bool Timer::Initialized()
{
}
void Timer::Update()
{
}
void Timer::SetTimeout(int expire_time, a8::TimerCb cb)
{
}
void Timer::SetTimeoutEx(int expire_time, a8::TimerCb cb, Attacher* attacher)
{
}
TimerWp Timer::SetTimeoutWp(int expire_time, a8::TimerCb cb)
{
}
TimerWp Timer::SetTimeoutWpEx(int expire_time, a8::TimerCb cb, Attacher* attacher)
{
}
void Timer::SetInterval(int expire_time, a8::TimerCb cb)
{
}
void Timer::SetIntervalEx(int expire_time, a8::TimerCb cb, Attacher* attacher)
{
}
TimerWp Timer::SetIntervalWp(int expire_time, a8::TimerCb cb)
{
}
TimerWp Timer::SetIntervalWpEx(int expire_time, a8::TimerCb cb, Attacher* attacher)
{
}
void Timer::FireEvent(TimerWp& timer_wp, int event, a8::Args* args)
{
}
void Timer::ModifyTime(TimerWp& timer_wp, int expire_time)
{
}
void Timer::Delete(TimerWp& timer_wp)
{
}
long long Timer::GetRemainTime(TimerWp& timer_wp)
{
}
void Timer::DeleteCurrentTimer()
{
}
bool Timer::IsRunning()
{
}
}

66
f8/timer.h Normal file
View File

@ -0,0 +1,66 @@
#pragma once
#include <a8/xtimer.h>
#include <a8/singleton.h>
namespace f8
{
class TimerWp
{
public:
TimerWp(a8::XTimerWp wp): p_(wp) {};
bool expired() { return p_.expired();};
auto&& lock() { return p_.lock(); };
private:
a8::XTimerWp p_;
friend class Timer;
};
class Attacher
{
public:
Attacher();
void ClearTimerList() { p_.ClearTimerList(); };
private:
a8::Attacher p_;
friend class Timer;
};
class Timer : public a8::Singleton<Timer>
{
private:
Timer() {};
friend class a8::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();
private:
bool initialized_ = false;
a8::XTimer xtimer_;
};
}