2 This file is part of libmspcore
3 Copyright © 2006 Mikko Rasa, Mikkosoft Productions
4 Distributed under the LGPL
9 #include <sys/resource.h>
13 #include "timedelta.h"
14 #include "timestamp.h"
24 Returns the current timestamp.
31 return TimeStamp(tv.tv_sec*1000000LL+tv.tv_usec);
33 static RawTime epoch=0;
46 SystemTimeToFileTime(&st, &ft);
47 epoch=(ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10;
51 GetSystemTimeAsFileTime(&ft);
52 return TimeStamp((ft.dwLowDateTime+(static_cast<RawTime>(ft.dwHighDateTime)<<32))/10-epoch);
56 string format_now(const string &fmt)
58 return DateTime(now()).format(fmt);
62 Returns the CPU time used by the program so far.
64 TimeDelta get_cpu_time()
68 getrusage(RUSAGE_SELF, &ru);
69 return (ru.ru_utime.tv_sec+ru.ru_stime.tv_sec)*sec + (ru.ru_utime.tv_usec+ru.ru_stime.tv_usec)*usec;
71 //XXX Figure out the function to use on Win32
77 Sleeps for the given time.
79 int sleep(const TimeDelta &d)
84 return nanosleep(&ts, 0);
86 Sleep((DWORD)(d/msec));