Utils/Termlib: Extend the completion API
[senf.git] / Scheduler / ClockService.hh
index bad8b6e..8fb1341 100644 (file)
@@ -23,8 +23,8 @@
 /** \file
     \brief ClockService public header */
 
-#ifndef HH_ClockService_
-#define HH_ClockService_ 1
+#ifndef HH_SENF_Scheduler_ClockService_
+#define HH_SENF_Scheduler_ClockService_ 1
 
 // Custom includes
 #include <sys/time.h> 
@@ -32,8 +32,9 @@
 #include <boost/date_time/posix_time/posix_time.hpp>
 #include <boost/scoped_ptr.hpp>
 #include <boost/cstdint.hpp>
+#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////////////////////////////////////////