23 #include "gcp/util/common/Directives.h"
25 #define DEFAULT_CLOCK CLOCK_REALTIME
35 #define timer_t unsigned int
84 class TimerId_eq :
public std::unary_function<TimerId, bool> {
87 explicit TimerId_eq(timer_t* timer) : timer_(timer) {}
88 bool operator() (
const TimerId& t)
const {
return t.
timer_ == timer_;}
95 class TimerSig_eq :
public std::unary_function<TimerId, bool> {
99 bool operator() (
const TimerId& t)
const {
return t.
sigNo_ == sigNo_;}
113 AbsTimer(
int signo,
void (*handler)(
int));
155 void start(
bool rearm=
false);
160 void start(
unsigned long sec,
unsigned long nsec);
191 void fix(
unsigned long inSec,
unsigned long inNsec,
192 unsigned long& outSec,
unsigned long& outNsec);
200 void privateConstructor(
int signo,
void (*handler)(
int));
238 struct sigevent evp_;
243 unsigned long targetSec_;
248 unsigned long targetNanoSec_;
253 unsigned long initSec_;
258 unsigned long initNanoSec_;
263 unsigned long intervalSec_;
268 unsigned long intervalNanoSec_;
275 void addTimer(timer_t* timer,
int signo);
281 void remTimer(timer_t* timer);
286 bool timerAlreadyExists(
int sigNo);
295 unsigned long initNanoSec,
296 unsigned long intervalSec,
297 unsigned long intervalNanoSec);
void stop()
Definition: AbsTimer.cc:294
unsigned long getResolution()
Definition: AbsTimer.cc:173
~AbsTimer()
Definition: AbsTimer.cc:152
Definition: AbsTimer.h:95
void checkTimer()
Definition: AbsTimer.cc:334
Definition: AbsTimer.h:84
int sigNo_
Definition: AbsTimer.h:72
Definition: AbsTimer.h:61
void fix(unsigned long inSec, unsigned long inNsec, unsigned long &outSec, unsigned long &outNsec)
Definition: AbsTimer.cc:382
void setIntegral(bool integral)
Definition: AbsTimer.cc:346
AbsTimer(int signo, void(*handler)(int))
Definition: AbsTimer.cc:74
void reArm()
Definition: AbsTimer.cc:354
void setIntervalDelay(unsigned long sec, unsigned long nsec)
Definition: AbsTimer.cc:203
void setFutureTime(unsigned long initSec, unsigned long initNanoSec, unsigned long intervalSec, unsigned long intervalNanoSec)
Definition: AbsTimer.cc:303
void start(bool rearm=false)
Definition: AbsTimer.cc:218
timer_t * timer_
Definition: AbsTimer.h:67
static std::list< TimerId > timerList_
Definition: AbsTimer.h:106
TimerId(timer_t *timer, int sigNo)
Definition: AbsTimer.h:77
Definition: AbsTimer.h:54
bool isRunning()
Definition: AbsTimer.cc:326
void setInitialDelay(unsigned long sec, unsigned long nsec)
Definition: AbsTimer.cc:192