This commit is contained in:
aozhiwei 2022-12-17 14:17:31 +08:00
parent c4429a36a8
commit dec7ea7a3a
2 changed files with 22 additions and 18 deletions

View File

@ -9,12 +9,15 @@ namespace f8
Attacher::Attacher() Attacher::Attacher()
{ {
p_.SetOwner(&f8::Timer::Instance()->xtimer_);
if (!f8::Timer::Instance()->Initialized()) {
abort();
}
} }
void Timer::Init() void Timer::Init()
{ {
initialized_ = true;
} }
void Timer::UnInit() void Timer::UnInit()
@ -29,78 +32,77 @@ namespace f8
void Timer::Update() void Timer::Update()
{ {
xtimer_.Update();
} }
void Timer::SetTimeout(int expire_time, a8::TimerCb cb) void Timer::SetTimeout(int expire_time, a8::TimerCb cb)
{ {
xtimer_.SetTimeout(expire_time, cb);
} }
void Timer::SetTimeoutEx(int expire_time, a8::TimerCb cb, Attacher* attacher) void Timer::SetTimeoutEx(int expire_time, a8::TimerCb cb, Attacher* attacher)
{ {
xtimer_.SetTimeoutEx(expire_time, cb, &attacher->p_);
} }
TimerWp Timer::SetTimeoutWp(int expire_time, a8::TimerCb cb) TimerWp Timer::SetTimeoutWp(int expire_time, a8::TimerCb cb)
{ {
return TimerWp(xtimer_.SetTimeoutWp(expire_time, cb));
} }
TimerWp Timer::SetTimeoutWpEx(int expire_time, a8::TimerCb cb, Attacher* attacher) TimerWp Timer::SetTimeoutWpEx(int expire_time, a8::TimerCb cb, Attacher* attacher)
{ {
return TimerWp(xtimer_.SetTimeoutWpEx(expire_time, cb, &attacher->p_));
} }
void Timer::SetInterval(int expire_time, a8::TimerCb cb) void Timer::SetInterval(int expire_time, a8::TimerCb cb)
{ {
xtimer_.SetInterval(expire_time, cb);
} }
void Timer::SetIntervalEx(int expire_time, a8::TimerCb cb, Attacher* attacher) void Timer::SetIntervalEx(int expire_time, a8::TimerCb cb, Attacher* attacher)
{ {
xtimer_.SetIntervalEx(expire_time, cb, &attacher->p_);
} }
TimerWp Timer::SetIntervalWp(int expire_time, a8::TimerCb cb) TimerWp Timer::SetIntervalWp(int expire_time, a8::TimerCb cb)
{ {
return TimerWp(xtimer_.SetIntervalWp(expire_time, cb));
} }
TimerWp Timer::SetIntervalWpEx(int expire_time, a8::TimerCb cb, Attacher* attacher) TimerWp Timer::SetIntervalWpEx(int expire_time, a8::TimerCb cb, Attacher* attacher)
{ {
return TimerWp(xtimer_.SetIntervalWpEx(expire_time, cb, &attacher->p_));
} }
void Timer::FireEvent(TimerWp& timer_wp, int event, a8::Args* args) void Timer::FireEvent(TimerWp& timer_wp, int event, a8::Args* args)
{ {
xtimer_.FireEvent(timer_wp.p_, event, args);
} }
void Timer::ModifyTime(TimerWp& timer_wp, int expire_time) void Timer::ModifyTime(TimerWp& timer_wp, int expire_time)
{ {
xtimer_.ModifyTime(timer_wp.p_, expire_time);
} }
void Timer::Delete(TimerWp& timer_wp) void Timer::Delete(TimerWp& timer_wp)
{ {
xtimer_.Delete(timer_wp.p_);
} }
long long Timer::GetRemainTime(TimerWp& timer_wp) long long Timer::GetRemainTime(TimerWp& timer_wp)
{ {
return xtimer_.GetRemainTime(timer_wp.p_);
} }
void Timer::DeleteCurrentTimer() void Timer::DeleteCurrentTimer()
{ {
xtimer_.DeleteCurrentTimer();
} }
bool Timer::IsRunning() bool Timer::IsRunning()
{ {
return xtimer_.IsRunning();
} }
} }

View File

@ -61,6 +61,8 @@ namespace f8
private: private:
bool initialized_ = false; bool initialized_ = false;
a8::XTimer xtimer_; a8::XTimer xtimer_;
friend class Attacher;
}; };
} }