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