From d9430f0b9b855a9bc5535745b90cb47faa8d260e Mon Sep 17 00:00:00 2001
From: g0dil <g0dil@wiback.org>
Date: Fri, 4 Apr 2008 13:33:04 +0000
Subject: [PATCH] Scheduler: Document the ClockService conversion members
 (microseconds...) Scheduler: Add reverse conversion helpers to ClockService

---
 Scheduler/ClockService.cci | 49 ++++++++++++++++++++++++++++++++------
 Scheduler/ClockService.hh  | 23 ++++++++++++------
 2 files changed, 58 insertions(+), 14 deletions(-)

diff --git a/Scheduler/ClockService.cci b/Scheduler/ClockService.cci
index a26d937b7..f53693144 100644
--- a/Scheduler/ClockService.cci
+++ b/Scheduler/ClockService.cci
@@ -57,41 +57,76 @@ prefix_ senf::ClockService::clock_type senf::ClockService::from_timeval(timeval
     return from_time_t(time.tv_sec) + ClockService::microseconds(time.tv_usec);
 }
 
-prefix_ senf::ClockService::clock_type senf::ClockService::nanoseconds(clock_type v)
+prefix_ senf::ClockService::clock_type senf::ClockService::nanoseconds(int64_type v)
 {
     return v;
 }
 
-prefix_ senf::ClockService::clock_type senf::ClockService::microseconds(clock_type v)
+prefix_ senf::ClockService::clock_type senf::ClockService::microseconds(int64_type v)
 {
     return v * nanoseconds(1000);
 }
 
-prefix_ senf::ClockService::clock_type senf::ClockService::milliseconds(clock_type v)
+prefix_ senf::ClockService::clock_type senf::ClockService::milliseconds(int64_type v)
 {
     return v * microseconds(1000);
 }
 
-prefix_ senf::ClockService::clock_type senf::ClockService::seconds(clock_type v)
+prefix_ senf::ClockService::clock_type senf::ClockService::seconds(int64_type v)
 {
     return v * milliseconds(1000);
 }
 
-prefix_ senf::ClockService::clock_type senf::ClockService::minutes(clock_type v)
+prefix_ senf::ClockService::clock_type senf::ClockService::minutes(int64_type v)
 {
     return v * seconds(60);
 }
 
-prefix_ senf::ClockService::clock_type senf::ClockService::hours(clock_type v)
+prefix_ senf::ClockService::clock_type senf::ClockService::hours(int64_type v)
 {
     return v * minutes(60);
 }
 
-prefix_ senf::ClockService::clock_type senf::ClockService::days(clock_type v)
+prefix_ senf::ClockService::clock_type senf::ClockService::days(int64_type v)
 {
     return v * hours(24);
 }
 
+prefix_ senf::ClockService::clock_type senf::ClockService::in_nanoseconds(int64_type v)
+{
+    return v;
+}
+
+prefix_ senf::ClockService::clock_type senf::ClockService::in_microseconds(int64_type v)
+{
+    return v / nanoseconds(1000);
+}
+
+prefix_ senf::ClockService::clock_type senf::ClockService::in_milliseconds(int64_type v)
+{
+    return v / microseconds(1000);
+}
+
+prefix_ senf::ClockService::clock_type senf::ClockService::in_seconds(int64_type v)
+{
+    return v / milliseconds(1000);
+}
+
+prefix_ senf::ClockService::clock_type senf::ClockService::in_minutes(int64_type v)
+{
+    return v / seconds(60);
+}
+
+prefix_ senf::ClockService::clock_type senf::ClockService::in_hours(int64_type v)
+{
+    return v / minutes(60);
+}
+
+prefix_ senf::ClockService::clock_type senf::ClockService::in_days(int64_type v)
+{
+    return v / hours(24);
+}
+
 prefix_ void senf::ClockService::restart()
 {
     instance().restart_m();
diff --git a/Scheduler/ClockService.hh b/Scheduler/ClockService.hh
index 04bcc1a55..255fcbee9 100644
--- a/Scheduler/ClockService.hh
+++ b/Scheduler/ClockService.hh
@@ -98,6 +98,7 @@ namespace senf {
             nanoseconds relative to some implementation defined reference time.
          */
         typedef boost::int_fast64_t clock_type;
+        typedef boost::int_fast64_t int64_type;
 
         /** \brief Absolute time data type
 
@@ -141,13 +142,21 @@ namespace senf {
                                         /**< This member converts an absolute time value
                                              represented as a timeval value into a clock value */
 
-        static clock_type nanoseconds(clock_type v);
-        static clock_type microseconds(clock_type v);
-        static clock_type milliseconds(clock_type v);
-        static clock_type seconds(clock_type v);
-        static clock_type minutes(clock_type v);
-        static clock_type hours(clock_type v);
-        static clock_type days(clock_type v);
+        static clock_type nanoseconds(int64_type v); ///< Convert \a v nanoseconds to clock_type
+        static clock_type microseconds(int64_type v); ///< Convert \a v microseconds to clock_type
+        static clock_type milliseconds(int64_type v); ///< Convert \a v milliseconds to clock_type
+        static clock_type seconds(int64_type v); ///< Convert \a v seconds to clock_type
+        static clock_type minutes(int64_type v); ///< Convert \a v minutes to clock_type
+        static clock_type hours(int64_type v); ///< Convert \a v hours to clock_type
+        static clock_type days(int64_type v); ///< Convert \a v days to clock_type
+
+        static int64_type in_nanoseconds(clock_type v); ///< Convert \a v to nanoseconds
+        static int64_type in_microseconds(clock_type v); ///< Convert \a v to microseconds
+        static int64_type in_milliseconds(clock_type v); ///< Convert \a v to milliseconds
+        static int64_type in_seconds(clock_type v); ///< Convert \a v to seconds
+        static int64_type in_minutes(clock_type v); ///< Convert \a v to minutes
+        static int64_type in_hours(clock_type v); ///< Convert \a v to hours
+        static int64_type in_days(clock_type v); ///< Convert \a v to days
 
         static void restart();
 
-- 
GitLab