]> git.tdb.fi Git - libs/core.git/blobdiff - source/time/timestamp.h
Use operator void * instead of bool in Time classes to avoid obscure problems resulti...
[libs/core.git] / source / time / timestamp.h
index 1e1b275ab97a799cf8450e7c99ecb6472d37b1ed..6b264aff6cdadd4ad739e8bb14035bbe8a7798a9 100644 (file)
@@ -8,6 +8,7 @@ Distributed under the LGPL
 
 #include <stdint.h>
 #include "timedelta.h"
+#include "types.h"
 
 namespace Msp {
 namespace Time {
@@ -31,13 +32,13 @@ public:
        Constructs a TimeStamp from a plain number.  The purpose of this is to allow
        serialization together with the raw() function.
        */
-       explicit TimeStamp(int64_t u): usec(u) { }
+       explicit TimeStamp(RawTime u): usec(u) { }
 
        /**
        Returns the raw number stored inside the TimeStamp.  This value should be
        considered opaque and only be used for serialization.
        */
-       int64_t   raw() const { return usec; }
+       RawTime raw() const { return usec; }
 
        TimeStamp operator+(const TimeDelta &t) const  { return TimeStamp(usec+t.raw()); }
        TimeStamp &operator+=(const TimeDelta &t)      { usec+=t.raw(); return *this; }
@@ -50,11 +51,11 @@ public:
        bool      operator<(const TimeStamp &t) const  { return usec<t.usec; }
        bool      operator==(const TimeStamp &t) const { return usec==t.usec; }
        bool      operator!=(const TimeStamp &t) const { return usec!=t.usec; }
-       operator bool() const                          { return usec>0; }
+       operator const void *() const                  { return usec>0 ? this : 0; }
 
        static TimeStamp from_unixtime(time_t t) { return TimeStamp(t*1000000LL); }
 private:
-       int64_t usec;
+       RawTime usec;
 };
 
 } // namespace Time