00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00018
00019 #ifndef NET_INSTAWEB_UTIL_PUBLIC_TIMER_H_
00020 #define NET_INSTAWEB_UTIL_PUBLIC_TIMER_H_
00021
00022 #include "net/instaweb/util/public/basictypes.h"
00023
00024 namespace net_instaweb {
00025
00027 class Timer {
00028 public:
00034 static const int64 kSecondMs = 1000;
00035 static const int64 kMsUs = 1000;
00036 static const int64 kSecondUs = kMsUs * kSecondMs;
00037 static const int64 kSecondNs = 1000 * kSecondUs;
00038 static const int64 kMinuteMs = 60 * kSecondMs;
00039 static const int64 kMinuteUs = 60 * kSecondUs;
00040 static const int64 kHourMs = 60 * kMinuteMs;
00041 static const int64 kDayMs = 24 * kHourMs;
00042 static const int64 kWeekMs = 7 * kDayMs;
00043 static const int64 kMonthMs = 31 * kDayMs;
00044 static const int64 kYearMs = 365 * kDayMs;
00045
00046 virtual ~Timer();
00047
00049 virtual int64 NowMs() const;
00050
00052 virtual int64 NowUs() const = 0;
00053
00055 virtual void SleepMs(int64 ms);
00056
00058 virtual void SleepUs(int64 us) = 0;
00059 };
00060
00061 }
00062
00063 #endif ///< NET_INSTAWEB_UTIL_PUBLIC_TIMER_H_