Home | C-Bits Package Documentation | Project Page |
#include <CallbackTimer.h>
Inheritance diagram for cbits::CallbackTimer:
Public Types | |
enum | Type { SINGLE = 1, PERIODIC = 2 } |
Timer types. More... | |
Public Methods | |
virtual | ~CallbackTimer () |
Destructor. More... | |
const bool | start () |
Start the timer. More... | |
const bool | stop () |
Stop the timer. More... | |
virtual void | run () |
Runnable implementation. More... | |
const bool | isStopped () const |
Test if the timer is stopped or expired. More... | |
const Thread *const | getThread () const |
Accessor for the cbits::Thread object that's executing this timer. More... | |
Static Public Methods | |
CallbackTimer * | create (const Type t, const long tm, CallbackTimerListener &cl) |
Create a callback timer instance. More... | |
Protected Methods | |
CallbackTimer (const Type t, const long tm, CallbackTimerListener &cl) | |
Constructor. More... | |
virtual const bool | impl_lock_obj () const=0 |
Lock the object. More... | |
virtual const bool | impl_unlock_obj () const=0 |
Unlock the object. More... | |
virtual const bool | impl_wait (const long msec)=0 |
Wait for the timer to expire. More... | |
virtual const bool | impl_signal ()=0 |
Abort the timer. More... | |
Private Attributes | |
Type | _type |
Type of this timer. More... | |
long | _tm_msec |
Timer period. More... | |
CallbackTimerListener & | _client |
Callback. More... | |
Thread * | _timer |
timer and callback thread. More... | |
bool | _halt |
true if timer is stopped. More... |
If a PERIODIC timer is created, the user callback will be called at the end of each interval with the clock being 'reset' when the callback completes.
For instance, to create a timer objec that fires after 10 seconds:
CallbackTimerListener cb = ...; CallbackTimer* timer = CallbackTimer::create( SINGLE, 10000, cb ); timer->getThread()->join(); // ...
The 'join' method will return after the timer has fired and invoked the user supplied callback. If the CallbackTimer is of type PERIODIC, though, the join method will not return (in the example above).
Implementation Note:
A CallbackTimer derived class must be implemented for each new platform. The protected, pure virtual impl_XXX methods (see below) must be implemented in the derived class.
|
Timer types.
|
|
Destructor. If the timer is running, it is stopped and the callback will not be executed. |
|
Constructor. Create an initialized timer. The timer must not 'run' until the start method is invoked.
|
|
Create a callback timer instance. Create an initialized timer. The timer must not 'run' until the start method is invoked.
|
|
Accessor for the cbits::Thread object that's executing this timer.
|
|
Lock the object. The implementation should protect the object against concurrent access by, for instance, locking an instance-scoped mutex.
Implemented in cbits::CallbackTimer_PTHREAD. |
|
Abort the timer. The implementation must stop the timer, causing the impl_wait method to return with a value of false if the time interval has not expired. Implemented in cbits::CallbackTimer_PTHREAD. |
|
Unlock the object. The implementation should release the 'lock' that was acquired by the 'lock' method. Implemented in cbits::CallbackTimer_PTHREAD. |
|
Wait for the timer to expire. The implementation must block the current thread for the time interval specified in the method call.
Implemented in cbits::CallbackTimer_PTHREAD. |
|
Test if the timer is stopped or expired.
|
|
Runnable implementation. Not for client use. Implements cbits::Runnable. |
|
Start the timer.
|
|
Stop the timer.
|
|
Callback.
|
|
true if timer is stopped.
|
|
timer and callback thread.
|
|
Timer period.
|
|
Type of this timer.
|
|
|