You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by vi...@apache.org on 2013/03/14 03:43:59 UTC

svn commit: r1456307 - /incubator/mesos/trunk/third_party/libprocess/third_party/stout/include/stout/duration.hpp

Author: vinodkone
Date: Thu Mar 14 02:43:59 2013
New Revision: 1456307

URL: http://svn.apache.org/r1456307
Log:
Fixed Duration to use a base unit of seconds.

From: Ben Mahler <be...@gmail.com>
Review: https://reviews.apache.org/r/9765

Modified:
    incubator/mesos/trunk/third_party/libprocess/third_party/stout/include/stout/duration.hpp

Modified: incubator/mesos/trunk/third_party/libprocess/third_party/stout/include/stout/duration.hpp
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/third_party/libprocess/third_party/stout/include/stout/duration.hpp?rev=1456307&r1=1456306&r2=1456307&view=diff
==============================================================================
--- incubator/mesos/trunk/third_party/libprocess/third_party/stout/include/stout/duration.hpp (original)
+++ incubator/mesos/trunk/third_party/libprocess/third_party/stout/include/stout/duration.hpp Thu Mar 14 02:43:59 2013
@@ -56,89 +56,97 @@ public:
     return Error("Invalid duration '" + s + "'");
   }
 
-  Duration() : value(0.0) {}
+  Duration() : seconds(0.0) {}
 
-  double ns()    const { return value; }
-  double us()    const { return value / MICROSECONDS; }
-  double ms()    const { return value / MILLISECONDS; }
-  double secs()  const { return value / SECONDS; }
-  double mins()  const { return value / MINUTES; }
-  double hrs()   const { return value / HOURS; }
-  double days()  const { return value / DAYS; }
-  double weeks() const { return value / WEEKS; }
-
-  bool operator <  (const Duration& that) const { return value <  that.value; }
-  bool operator <= (const Duration& that) const { return value <= that.value; }
-  bool operator >  (const Duration& that) const { return value >  that.value; }
-  bool operator >= (const Duration& that) const { return value >= that.value; }
-  bool operator == (const Duration& that) const { return value == that.value; }
-  bool operator != (const Duration& that) const { return value != that.value; }
+  double ns() const    { return seconds / NANOSECONDS; }
+  double us() const    { return seconds / MICROSECONDS; }
+  double ms() const    { return seconds / MILLISECONDS; }
+  double secs() const  { return seconds / SECONDS; }
+  double mins() const  { return seconds / MINUTES; }
+  double hrs() const   { return seconds / HOURS; }
+  double days() const  { return seconds / DAYS; }
+  double weeks() const { return seconds / WEEKS; }
+
+  bool operator <  (const Duration& d) const { return seconds <  d.seconds; }
+  bool operator <= (const Duration& d) const { return seconds <= d.seconds; }
+  bool operator >  (const Duration& d) const { return seconds >  d.seconds; }
+  bool operator >= (const Duration& d) const { return seconds >= d.seconds; }
+  bool operator == (const Duration& d) const { return seconds == d.seconds; }
+  bool operator != (const Duration& d) const { return seconds != d.seconds; }
 
   // TODO(vinod): Overload arithmetic operators.
 
 protected:
-  static const uint64_t NANOSECONDS  =    1;
-  static const uint64_t MICROSECONDS = 1000 * NANOSECONDS;
-  static const uint64_t MILLISECONDS = 1000 * MICROSECONDS;
-  static const uint64_t SECONDS      = 1000 * MILLISECONDS;
-  static const uint64_t MINUTES      =   60 * SECONDS;
-  static const uint64_t HOURS        =   60 * MINUTES;
-  static const uint64_t DAYS         =   24 * HOURS;
-  static const uint64_t WEEKS        =    7 * DAYS;
+  static const double NANOSECONDS =  0.000000001;
+  static const double MICROSECONDS = 0.000001;
+  static const double MILLISECONDS = 0.001;
+  static const uint64_t SECONDS    = 1;
+  static const uint64_t MINUTES    = 60 * SECONDS;
+  static const uint64_t HOURS      = 60 * MINUTES;
+  static const uint64_t DAYS       = 24 * HOURS;
+  static const uint64_t WEEKS      = 7 * DAYS;
 
-  Duration(double _value, uint64_t _unit) : value(_value * _unit) {}
+  Duration(double value, double unit)
+    : seconds(value * unit) {}
 
 private:
-  double value;
+  double seconds;
 };
 
 
 class Nanoseconds : public Duration
 {
 public:
-  explicit Nanoseconds(double value) : Duration(value, NANOSECONDS) {}
+  explicit Nanoseconds(double nanoseconds)
+    : Duration(nanoseconds, NANOSECONDS) {}
 };
 
 
 class Microseconds : public Duration
 {
 public:
-  explicit Microseconds(double value) : Duration(value, MICROSECONDS) {}
+  explicit Microseconds(double microseconds)
+    : Duration(microseconds, MICROSECONDS) {}
 };
 
 
 class Milliseconds : public Duration
 {
 public:
-  explicit Milliseconds(double value) : Duration(value, MILLISECONDS) {}
+  explicit Milliseconds(double milliseconds)
+    : Duration(milliseconds, MILLISECONDS) {}
 };
 
 
 class Seconds : public Duration
 {
 public:
-  explicit Seconds(double value) : Duration(value, SECONDS) {}
+  explicit Seconds(double seconds)
+    : Duration(seconds, SECONDS) {}
 };
 
 
 class Minutes : public Duration
 {
 public:
-  explicit Minutes(double value) : Duration(value, MINUTES) {}
+  explicit Minutes(double minutes)
+    : Duration(minutes, MINUTES) {}
 };
 
 
 class Hours : public Duration
 {
 public:
-  explicit Hours(double value) : Duration(value, HOURS) {}
+  explicit Hours(double hours)
+    : Duration(hours, HOURS) {}
 };
 
 
 class Days : public Duration
 {
 public:
-  explicit Days(double value) : Duration(value, DAYS) {}
+  explicit Days(double days)
+    : Duration(days, DAYS) {}
 };