31 #include <ibrcommon/MonotonicClock.h>
38 #define timerclear(a) \
39 (a)->tv_set = 0; (a)->tv_usec = 0
43 #define timeradd(a, b, result) \
45 (result)->tv_sec = (a)->tv_sec + (b)->tv_sec; \
46 (result)->tv_usec = (a)->tv_usec + (b)->tv_usec; \
47 if ((result)->tv_usec >= 1000000L) { \
49 (result)->tv_usec -= 1000000L; \
55 #define timersub(a, b, result) \
57 (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
58 (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
59 if ((result)->tv_usec < 0) { \
61 (result)->tv_usec += 1000000L; \
146 static void setOffset(
const struct timeval &tv);
152 static const struct timeval&
getOffset();
182 static double toDouble(
const timeval &val);
195 static double _rating;
201 static bool _modify_clock;
208 static struct timespec __get_monotonic_ts();
209 static struct timeval __get_clock_reference();
210 static struct timeval __initialize_clock();
212 static void __monotonic_gettimeofday(
struct timeval *tv);
214 static struct timeval _offset;
216 static struct timeval __clock_reference;
217 static struct timespec _uptime_reference;
static void setModifyClock(bool val)
static const dtn::data::Timestamp TIMEVAL_CONVERSION
static void settimeofday(struct timeval *tv)
static void gettimeofday(struct timeval *tv)
static dtn::data::Timestamp getExpireTime(const dtn::data::Bundle &b)
static bool shouldModifyClock()
static void setOffset(const struct timeval &tv)
static dtn::data::Timestamp getUptime()
static double toDouble(const timeval &val)
static dtn::data::Timestamp getTime()
static const struct timeval & getOffset()
static double getRating()
static void setRating(double val)
static dtn::data::Timestamp getMonotonicTimestamp()
static bool isExpired(const dtn::data::Timestamp ×tamp, const dtn::data::Number &lifetime)
static void getdtntimeofday(struct timeval *tv)