]> git.tdb.fi Git - libs/core.git/blobdiff - source/time/timestamp.h
Add support for time zones
[libs/core.git] / source / time / timestamp.h
index 1e1b275ab97a799cf8450e7c99ecb6472d37b1ed..2905c6ed5d23ad150172db2bc0b5f7ee0883cd50 100644 (file)
@@ -6,8 +6,8 @@ Distributed under the LGPL
 #ifndef MSP_TIME_TIMESTAMP_H_
 #define MSP_TIME_TIMESTAMP_H_
 
-#include <stdint.h>
 #include "timedelta.h"
+#include "types.h"
 
 namespace Msp {
 namespace Time {
@@ -31,13 +31,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 +50,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