00001 #include "TimeUtil.h"
00002
00003 TimeUtil& TimeUtil::Instance() {
00004 if (_inst == NULL) {
00005 _inst = new TimeUtil();
00006 }
00007 return *_inst;
00008 }
00009
00010 uint64_t TimeUtil::timeuImpl() {
00011 struct timeval tv;
00012 gettimeofday(&tv, 0);
00013 return timeu(tv);
00014 }
00015
00016 time_t TimeUtil::timeImpl() {
00017 return ::time(0);
00018 }
00019
00020 void TimeUtil::fillTimeval(uint64_t t, struct timeval& tv) {
00021 tv.tv_sec = t / 1000000;
00022 tv.tv_usec = t % 1000000;
00023 }
00024
00025 uint64_t TimeUtil::timeu(const struct timeval& tv) {
00026 return (((uint64_t)tv.tv_sec * 1000000) + tv.tv_usec);
00027 }
00028
00029 m_suseconds_t TimeUtil::timediff(const timeval& start, const timeval& end) {
00030 return ((int64_t)end.tv_usec - start.tv_usec) + (((int64_t)end.tv_sec - start.tv_sec) * 1000000);
00031 }
00032
00033 double TimeUtil::timed() {
00034 return timeu() / 1000000.0;
00035 }
00036
00037 TimeUtil* TimeUtil::_inst = NULL;