00001
00034 #ifndef TIMER_H_
00035 #define TIMER_H_
00036
00037 #include <sys/time.h>
00038 #include <time.h>
00039 #include <iostream>
00040
00041 class Timer {
00042 public:
00043 Timer(){
00044 gettimeofday(&tv_start, NULL);
00045 }
00046
00047 float stop(){
00048 gettimeofday(&tv_end, NULL);
00049 int curtimesec = tv_end.tv_sec - tv_start.tv_sec;
00050 int curtimeusec = tv_end.tv_usec - tv_start.tv_usec;
00051
00052 if (curtimeusec < 0){
00053 curtimesec--;
00054 curtimeusec = 1000000 + curtimeusec;
00055 }
00056
00057
00058 float time = (float) curtimeusec;
00059 time /= 1000000;
00060 time += curtimesec;
00061 return time;
00062
00063 }
00064
00065 void start(){
00066 gettimeofday(&tv_start, NULL);
00067 }
00068
00069
00070
00071 private:
00072 struct timeval tv_start;
00073 struct timeval tv_end;
00074
00075
00076
00077 };
00078
00079 #endif