7#include "wvtimestream.h"
9WvTimeStream::WvTimeStream():
10 last(wvtime_zero), next(wvtime_zero), ms_per_tick(0)
19 ms_per_tick = msec > 0 ? msec : 0;
20 next = msecadd(now, ms_per_tick);
46 next = tvdiff(next, tvdiff(last, now));
56 diff = msecdiff(next, now);
57 diff = diff < 0 ? 0 : diff;
58 if (diff < si.msec_timeout || si.msec_timeout < 0)
59 si.msec_timeout = diff;
83 next = msecadd(next, ms_per_tick);
85 if (msecdiff(next, now) > ms_per_tick * 100 ||
86 msecdiff(now, next) > ms_per_tick * 100)
91 next = msecadd(last, ms_per_tick);
93 else if (msecdiff(next, now) > ms_per_tick * 10)
95 next = msecadd(now, ms_per_tick);
virtual void execute()
The callback() function calls execute(), and then calls the user- specified callback if one is define...
virtual bool post_select(SelectInfo &si)
post_select() is called after ::select(), and returns true if this object is now ready.
virtual void pre_select(SelectInfo &si)
pre_select() sets up for eventually calling ::select().
bool alarm_was_ticking
This will be true during callback execution if the callback was triggered by the alarm going off.
virtual void execute()
The callback() function calls execute(), and then calls the user- specified callback if one is define...
void set_timer(time_t msec)
Every 'msec' milliseconds, select() will return true on this stream.
virtual bool post_select(SelectInfo &si)
post_select() is called after ::select(), and returns true if this object is now ready.
virtual bool isok() const
return true if the stream is actually usable right now
virtual void pre_select(SelectInfo &si)
pre_select() sets up for eventually calling ::select().
Based on (and interchangeable with) struct timeval.
the data structure used by pre_select()/post_select() and internally by select().