00001
00002
00003
00004
00005
00006 #ifndef _HWTIMER_H_
00007 #define _HWTIMER_H_
00008
00009 #if defined(WIN32)
00010 #include <windows.h>
00011 #else
00012 #include <sys/time.h>
00013 #endif
00014
00015
00016
00017
00018
00019
00020 class HWTimer
00021 {
00022 public:
00023
00024
00025
00026
00027
00028 HWTimer();
00029 HWTimer(HWTimer& t);
00030 ~HWTimer();
00031
00032
00033
00034
00035 bool IsSupported(void);
00036
00037
00038
00039
00040
00041
00042 float GetElapsedTimeFloat(void);
00043 double GetElapsedTimeDouble(void);
00044
00045
00046
00047
00048
00049
00050
00051 void SleepFloat(float s);
00052 void SleepDouble(double s);
00053
00054
00055
00056
00057 HWTimer& operator=(HWTimer& rhs);
00058
00059 private:
00060 #if defined(WIN32)
00061 LARGE_INTEGER m_LastCount;
00062 float m_FloatFreq;
00063 double m_DoubleFreq;
00064 #else
00065 struct timeval m_LastCount;
00066 #endif
00067 bool m_IsSupported;
00068 };
00069
00070 #endif