TimerManager.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef ADCHPP_TIMERMANAGER_H
00020 #define ADCHPP_TIMERMANAGER_H
00021
00022 #include "Singleton.h"
00023
00024 namespace adchpp {
00025
00026 class TimerManager : public Singleton<TimerManager>
00027 {
00028 public:
00029 #ifdef _WIN32
00030 static uint32_t getTick() {
00031 return GetTickCount();
00032 }
00033
00034 #else
00035 uint32_t getTick() {
00036 timeval tv2;
00037 gettimeofday(&tv2, NULL);
00038 return (time_t)((tv2.tv_sec - tv.tv_sec) * 1000 ) + ( (tv2.tv_usec - tv.tv_usec) / 1000);
00039 }
00040 #endif
00041
00042 static time_t getTime() {
00043 return time(NULL);
00044 }
00045
00046 private:
00047
00048 friend class Singleton<TimerManager>;
00049 ADCHPP_DLL static TimerManager* instance;
00050
00051 TimerManager() throw() {
00052 #ifndef _WIN32
00053 gettimeofday(&tv, NULL);
00054 tv.tv_sec -= 1000;
00055 #endif
00056 }
00057
00058 virtual ~TimerManager() throw() { }
00059
00060 #ifndef _WIN32
00061 timeval tv;
00062 #endif
00063 };
00064
00065 #ifdef _WIN32
00066 #define GET_TICK() TimerManager::getTick()
00067 #else
00068 #define GET_TICK() TimerManager::getInstance()->getTick()
00069 #endif // WIN32
00070
00071 #define GET_TIME() TimerManager::getTime()
00072
00073 }
00074
00075 #endif // TIMERMANAGER_H