]> git.tdb.fi Git - libs/core.git/blobdiff - source/time/timestamp.h
Drop copyright and license notices from source files
[libs/core.git] / source / time / timestamp.h
index 2905c6ed5d23ad150172db2bc0b5f7ee0883cd50..cb38279501ff7e0026aca3e1e23a890ab843fcea 100644 (file)
@@ -1,13 +1,8 @@
-/*
-This file is part of libmspcore     
-Copyright © 2006  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
 #ifndef MSP_TIME_TIMESTAMP_H_
 #define MSP_TIME_TIMESTAMP_H_
 
 #include "timedelta.h"
-#include "types.h"
+#include "rawtime.h"
 
 namespace Msp {
 namespace Time {
@@ -20,6 +15,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 +37,29 @@ 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; }
 
+#ifndef WIN32
+       operator timeval() const { return rawtime_to_timeval(usec); }
+       operator timespec() const { return rawtime_to_timespec(usec); }
+#endif
+
        static TimeStamp from_unixtime(time_t t) { return TimeStamp(t*1000000LL); }
-private:
-       RawTime usec;
 };
 
 } // namespace Time