Fawkes API
Fawkes Development Version
|
25 #include <core/exception.h>
26 #include <utils/time/clock.h>
27 #include <utils/time/timesource.h>
42 Clock *Clock::_instance = NULL;
54 delete ext_timesource;
65 if (NULL == _instance) {
66 _instance =
new Clock();
105 if ((ts == NULL) || (ext_timesource == ts)) {
106 ext_timesource = NULL;
109 throw Exception(
"Time sources do not match. Not removing.");
120 if (ext_is_default) {
121 if (NULL != ext_timesource) {
124 throw Exception(
"Trying to make the external timesource the default timesource but there is "
125 "no external timesource");
150 }
else if ((
EXTERNAL == sel) && (NULL == ext_timesource)) {
151 throw Exception(
"No external time source registered");
164 if (NULL == ext_timesource) {
165 throw Exception(
"No external time source registered");
169 gettimeofday(tv, NULL);
226 gettimeofday(&(time.time_), 0);
235 gettimeofday(&(time->time_), 0);
256 Time nowt(_instance);
269 gettimeofday(&nowt, NULL);
283 if (NULL != ext_timesource) {
307 if (NULL != ext_timesource) {
321 if (0 != ext_timesource) {
void set_time(const timeval *tv)
Sets the time.
void set_ext_default_timesource(bool ext_is_default)
Set/unset the external time source as the default time source.
void get_time(struct timeval *tv) const
Returns the time of the selected time source.
Time native_to_time(const Time &t)
Convert some native time to a Fawkes time.
void remove_ext_timesource(TimeSource *ts=0)
Remove external time source.
const timeval * get_timeval() const
float elapsed(Time *t) const
How much time has elapsed since t? Calculated as "now - t" in seconds.
@ EXTERNAL
select the external time source
double time_diff_sec(const timeval &a, const timeval &b)
Calculate time difference of two time structs.
TimesourceSelector
Select the time source.
@ REALTIME
select the system time source
virtual timeval conv_native_to_exttime(const timeval *tv) const =0
Convert a native time to the external time.
static void finalize()
Finalize.
virtual ~Clock()
Destructor.
@ DEFAULT
select the default time source
Time now() const
Get the current time.
void register_ext_timesource(TimeSource *ts, bool make_default=false)
Register an external time source.
Time ext_to_realtime(const Time &t)
Convert a time given w.r.t.
void get_systime(struct timeval *tv) const
Returns the system time.
virtual void get_time(timeval *tv) const =0
Get the current time.
static Clock * instance()
Clock initializer.
Time & stamp()
Set this time to the current time.
virtual timeval conv_to_realtime(const timeval *tv) const =0
Convert a time given w.r.t.
bool is_ext_default_timesource() const
Checks whether the external time source is the default time soucre.
float sys_elapsed(Time *t) const
How much system time has elapsed since t? Use only for system time criteria like timeouts.
bool has_ext_timesource() const
Check whether an external time source is registered.