X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2Fmoof%2Ftimer.hh;h=3ec4ef9d8e04bd23a1e6141d4c242e430f6d0d5e;hp=a86f445d4168a9e2b19073a88593cc4790d9e9a0;hb=1d4aa0d34b0410c7bc60a24bad7abb55eacc850a;hpb=6b0a0d0efafe34d48ab344fca3b479553bd4e62c diff --git a/src/moof/timer.hh b/src/moof/timer.hh index a86f445..3ec4ef9 100644 --- a/src/moof/timer.hh +++ b/src/moof/timer.hh @@ -19,6 +19,7 @@ #include #include +#include #include #include @@ -33,7 +34,7 @@ namespace moof { * runloop associated with the current running view will make an attempt to * fire any expired timers as close to their scheduled times as possible. */ -class timer +class timer : public boost::noncopyable { public: @@ -148,6 +149,13 @@ public: */ scalar seconds_remaining() const; + /** + * Get the absolute time of the next expiration of this timer. + * \return Seconds. + */ + scalar next_expiration() const; + + /** * Get whether or not the timer is expired. A timer on a repeating * schedule will never be expired since it will always have a scheduled @@ -191,9 +199,9 @@ public: * Get the absolute time when the next timer is scheduled to expire. * \return Absolute time, in seconds. */ - static scalar next_expiration() + static scalar next_event() { - return next_expiration_; + return next_event_; } @@ -201,7 +209,10 @@ public: * Fire any timers which are not yet invalidated but have an expiration * time in the past. */ - static void fire_expired_timers(); + static void fire_expired_timers() + { + fire_expired_timers(ticks()); + } /** * Fire any timers which are not yet invalidated but have an expiration @@ -213,7 +224,7 @@ public: private: static unsigned new_identifier(); - static scalar find_next_expiration(); + static scalar find_next_event(); function function_; mode mode_; @@ -221,7 +232,7 @@ private: scalar interval_; unsigned id_; - static scalar next_expiration_; + static scalar next_event_; static hash timers_; };