diff --git a/f8/timer.cc b/f8/timer.cc index 6fca259..607ed96 100644 --- a/f8/timer.cc +++ b/f8/timer.cc @@ -9,12 +9,15 @@ namespace f8 Attacher::Attacher() { - + p_.SetOwner(&f8::Timer::Instance()->xtimer_); + if (!f8::Timer::Instance()->Initialized()) { + abort(); + } } void Timer::Init() { - + initialized_ = true; } void Timer::UnInit() @@ -29,78 +32,77 @@ namespace f8 void Timer::Update() { - + xtimer_.Update(); } 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) { - + xtimer_.SetTimeoutEx(expire_time, cb, &attacher->p_); } 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) { - + return TimerWp(xtimer_.SetTimeoutWpEx(expire_time, cb, &attacher->p_)); } 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) { - + xtimer_.SetIntervalEx(expire_time, cb, &attacher->p_); } 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) { - + return TimerWp(xtimer_.SetIntervalWpEx(expire_time, cb, &attacher->p_)); } 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) { - + xtimer_.ModifyTime(timer_wp.p_, expire_time); } void Timer::Delete(TimerWp& timer_wp) { - + xtimer_.Delete(timer_wp.p_); } long long Timer::GetRemainTime(TimerWp& timer_wp) { - - + return xtimer_.GetRemainTime(timer_wp.p_); } void Timer::DeleteCurrentTimer() { - + xtimer_.DeleteCurrentTimer(); } bool Timer::IsRunning() { - + return xtimer_.IsRunning(); } } diff --git a/f8/timer.h b/f8/timer.h index be215f5..174bcce 100644 --- a/f8/timer.h +++ b/f8/timer.h @@ -61,6 +61,8 @@ namespace f8 private: bool initialized_ = false; a8::XTimer xtimer_; + + friend class Attacher; }; }