00001 #include <time.h>
00002 #include <sys/time.h>
00003 #include <stdint.h>
00004
00005 #ifndef __TIME_UTIL_H
00006 #define __TIME_UTIL_H
00007
00013
00014 typedef int64_t m_suseconds_t;
00015
00016 namespace mace {
00017
00018 }
00019
00031 class TimeUtil {
00032 protected:
00033 static TimeUtil* _inst;
00034 TimeUtil() { }
00035 static TimeUtil& Instance();
00036
00037 virtual uint64_t timeuImpl();
00038 virtual time_t timeImpl();
00039
00040 public:
00041 static uint64_t timeu() { return Instance().timeuImpl(); }
00042 static time_t time() { return Instance().timeImpl(); }
00043
00044 static double timed();
00045 static void fillTimeval(uint64_t t, struct timeval& tv);
00046 static uint64_t timeu(const struct timeval& tv);
00047 static m_suseconds_t timediff(const timeval& start, const timeval& end);
00048
00049 virtual ~TimeUtil() {}
00050 };
00051
00054 #endif //__TIME_UTIL_H