-#ifdef WIN32
-#include <windows.h>
-#else
-#include <sys/resource.h>
-#include <sys/time.h>
-#include <cerrno>
-#endif
-#include <msp/core/systemerror.h>
#include "datetime.h"
-#include "rawtime_private.h"
-#include "timedelta.h"
#include "timestamp.h"
#include "utils.h"
namespace Msp {
namespace Time {
-TimeStamp now()
-{
-#ifndef WIN32
- timeval tv;
- gettimeofday(&tv, 0);
- return TimeStamp(timeval_to_rawtime(tv));
-#else
- FILETIME ft;
- GetSystemTimeAsFileTime(&ft);
- return TimeStamp(filetime_to_rawtime(ft));
-#endif
-}
-
string format_now(const string &fmt)
{
return DateTime(now()).format(fmt);
}
-TimeDelta get_cpu_time()
-{
-#ifndef WIN32
- rusage ru;
- getrusage(RUSAGE_SELF, &ru);
- return (ru.ru_utime.tv_sec+ru.ru_stime.tv_sec)*sec + (ru.ru_utime.tv_usec+ru.ru_stime.tv_usec)*usec;
-#else
- //XXX Figure out the function to use on Win32
- return TimeDelta();
-#endif
-}
-
-void sleep(const TimeDelta &d)
-{
-#ifndef WIN32
- timespec ts = rawtime_to_timespec(d.raw());
- while(nanosleep(&ts, 0)==-1)
- if(errno!=EINTR)
- throw system_error("nanosleep");
-#else
- Sleep((DWORD)(d/msec));
-#endif
-}
-
} // namespace Time
} // namespace Msp