]> git.tdb.fi Git - libs/core.git/blobdiff - source/time/timestamp.h
Make to_unixtime const
[libs/core.git] / source / time / timestamp.h
index 2905c6ed5d23ad150172db2bc0b5f7ee0883cd50..64309ced1611c1482f3a0034af15985bd805a71f 100644 (file)
@@ -1,8 +1,10 @@
-/*
+/* $Id$
+
 This file is part of libmspcore     
-Copyright © 2006  Mikko Rasa, Mikkosoft Productions
+Copyright © 2006, 2009  Mikko Rasa, Mikkosoft Productions
 Distributed under the LGPL
 */
+
 #ifndef MSP_TIME_TIMESTAMP_H_
 #define MSP_TIME_TIMESTAMP_H_
 
@@ -20,6 +22,9 @@ For representing user-specified times, use the DateTime class.
 */
 class TimeStamp
 {
+private:
+       RawTime usec;
+
 public:
        /**
        Construct a TimeStamp that represents an arbitarily distant point in the
@@ -39,22 +44,24 @@ public:
        */
        RawTime raw() const { return usec; }
 
+       time_t to_unixtime() const { return usec/1000000LL; }
+
        TimeStamp operator+(const TimeDelta &t) const  { return TimeStamp(usec+t.raw()); }
        TimeStamp &operator+=(const TimeDelta &t)      { usec+=t.raw(); return *this; }
        TimeStamp operator-(const TimeDelta &t) const  { return TimeStamp(usec-t.raw()); }
        TimeStamp &operator-=(const TimeDelta &t)      { usec-=t.raw(); return *this; }
        TimeDelta operator-(const TimeStamp &t) const  { return TimeDelta(usec-t.usec); }
+
        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; }
        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 const void *() const                  { return usec>0 ? this : 0; }
 
        static TimeStamp from_unixtime(time_t t) { return TimeStamp(t*1000000LL); }
-private:
-       RawTime usec;
 };
 
 } // namespace Time