Re: [Boost-users] [asio] Interval Timer
On Wednesday, September 21, 2011 8:15 AM, asif saeed wrote:
I need an interval timer to continuously call my callback function after every n milliseconds/seconds for ever once I set it up. I also need the ability to kill/cancel the timer. Does Boost provide such a facility now?
You could assemble that timer using asio's deadline_timer http://www.boost.org/doc/libs/1_47_0/doc/html/boost_asio/reference/deadl ine_timer.html The deadline_timer calls a callback at a specified time. Your callback would need to calculate the time of the next callback and restart the timer. Perhaps the following pseudocode could get you started: Public data members: * deadline_timer::duration_type trigger_interval * bool is_killed Private data members: * deadline_timer::time_type next_trigger * deadline_timer the_timer Constructor: is_killed = false Set trigger_interval next_trigger = now + trigger_interval Initialize the_timer Call the_timer.expires_at Callback: if (! is_killed and no errors happened) { next_trigger += trigger_interval Call the_timer.expires_at Do your processing }
participants (1)
-
Andrew Holden