X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Scheduler%2FClockService.hh;h=8fb1341a12d8d56bd24d20c7a205135b782dcbc8;hb=b89e3166f7680755683dccee5e48cb3a820185c0;hp=02082ea057fcd0514a17854c7134eced102b9d26;hpb=412024ed31a4ab4eaea7a4165a434f8efebee325;p=senf.git diff --git a/Scheduler/ClockService.hh b/Scheduler/ClockService.hh index 02082ea..8fb1341 100644 --- a/Scheduler/ClockService.hh +++ b/Scheduler/ClockService.hh @@ -32,8 +32,9 @@ #include #include #include +#include "../config.hh" #include "../Utils/singleton.hh" -#include "Console/Parse.hh" +#include "../Utils/Console/Parse.hh" //#include "ClockService.mpp" ///////////////////////////////hh.p//////////////////////////////////////// @@ -72,7 +73,7 @@ namespace senf { Unsigned integer type representing scheduler time. Scheduler time is measured in nanoseconds relative to some implementation defined reference time. */ - typedef boost::int_fast64_t clock_type; + typedef config::time_type clock_type; /** \brief Supplementary integer type @@ -86,6 +87,12 @@ namespace senf { */ typedef boost::posix_time::ptime abstime_type; + /** \brief Relative time data type + + Boost.DateTime datatype used to represent time intervals + */ + typedef boost::posix_time::time_duration reltime_type; + /////////////////////////////////////////////////////////////////////////// static clock_type now(); ///< Return current clock value @@ -98,6 +105,12 @@ namespace senf { monotonous, absolute time may be non-monotonous if the system date/time is changed. */ + static reltime_type reltime(clock_type clock); ///< Convert clock to relative time + /**< This member converts a clock value into a relative + Boost.DateTime time interval + \note The resolution of reltime_type might be smaller + than the clock_type resolution */ + static clock_type clock(abstime_type time); ///< Convert absolute time to clock value /**< This member converst an absolute time value into the corresponding clock value. @@ -186,6 +199,8 @@ namespace senf { */ void parseClockServiceInterval(console::ParseCommandInfo::TokensRange const & tokens, ClockService::clock_type & out); + + void formatClockServiceInterval(ClockService::clock_type interval, std::ostream & os); } ///////////////////////////////hh.e////////////////////////////////////////