]> git.tdb.fi Git - libs/core.git/blobdiff - source/time/utils.cpp
Clean up after the timedelta.h/units.h merge
[libs/core.git] / source / time / utils.cpp
index d69febcb0a52a2326b2f7cf05c39cc92e18607a2..9c643cf8b2dec5634c703474d5b3e976a58f3346 100644 (file)
@@ -7,9 +7,9 @@
 #endif
 #include <msp/core/systemerror.h>
 #include "datetime.h"
+#include "rawtime_private.h"
 #include "timedelta.h"
 #include "timestamp.h"
-#include "units.h"
 #include "utils.h"
 
 using namespace std;
@@ -22,28 +22,11 @@ TimeStamp now()
 #ifndef WIN32
        timeval tv;
        gettimeofday(&tv, 0);
-       return TimeStamp(tv.tv_sec*1000000LL+tv.tv_usec);
+       return TimeStamp(timeval_to_rawtime(tv));
 #else
-       static RawTime epoch = 0;
-       if(!epoch)
-       {
-               SYSTEMTIME st;
-               st.wYear = 1970;
-               st.wMonth = 1;
-               st.wDay = 1;
-               st.wHour = 0;
-               st.wMinute = 0;
-               st.wSecond = 0;
-               st.wMilliseconds = 0;
-
-               FILETIME ft;
-               SystemTimeToFileTime(&st, &ft);
-               epoch = (ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10;
-       }
-       
        FILETIME ft;
        GetSystemTimeAsFileTime(&ft);
-       return TimeStamp((ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10-epoch);
+       return TimeStamp(filetime_to_rawtime(ft));
 #endif
 }
 
@@ -67,7 +50,7 @@ TimeDelta get_cpu_time()
 void sleep(const TimeDelta &d)
 {
 #ifndef WIN32
-       timespec ts = d;
+       timespec ts = rawtime_to_timespec(d.raw());
        while(nanosleep(&ts, 0)==-1)
                if(errno!=EINTR)
                        throw system_error("nanosleep");