1 #ifndef CARMA_UTIL_SCHEDULED_TIMER_H
2 #define CARMA_UTIL_SCHEDULED_TIMER_H
6 #include "carma/util/PthreadMutex.h"
7 #include "carma/util/PthreadCond.h"
41 typedef struct ::timespec Timespec;
43 static void sanityCheckTimespec(
const Timespec & ts );
49 void SetNextFireTime(
const Timespec & nextFireAbsTime );
51 void SetNextFireTimeAndWait(
const Timespec & nextFireAbsTime );
53 void refreshNextFireAbsTimeIfNeeded( Timespec * nextFireAbsTime );
56 CalculateNextFireAbsoluteTime(
const Timespec & fireAbsTime ) = 0;
60 FIRE_ABS_TIME_STATE_INVALID,
61 FIRE_ABS_TIME_STATE_NEXT,
62 FIRE_ABS_TIME_STATE_LAST
65 FireAbsTimeState fireAbsTimeState_;
66 Timespec fireAbsTime_;
69 bool interruptRequested_;
A simple wrapper class that makes use of ::pthread_cond_t easier in a C++ world.
Abstract base class for PthreadCond::TimedWait based timers.
void WaitForNextFireTime()
Block (the thread of the caller) until the next fire time for the timer arrives.
A simple wrapper class that makes use of ::pthread_mutex_t easier in a C++ world. ...
void InterruptPresentOrNextWait()
Interrupt the wait that is presently occurring on this timer object or if no such wait is presently o...