00001 #ifndef TIMER_H
00002 #define TIMER_H 1
00003
00004 #include <iostream>
00005
00006 extern "C"
00007 {
00008 #include <sys/time.h>
00009 }
00010
00011 using namespace std;
00012
00013 class Timer
00014 {
00015 struct timeval timerStart, timerStop;
00016 public:
00017
00018 void start()
00019 {
00020 if(0 != gettimeofday(&timerStart, 0))
00021 perror("timer.start(): gettimeofday() failed");
00022 }
00023
00024 void stop()
00025 {
00026 if(0 != gettimeofday(&timerStop, 0))
00027 perror("timer.stop(): gettimeofday() failed");
00028 }
00029
00033 long get()
00034 {
00035 int dseconds = timerStop.tv_sec-timerStart.tv_sec;
00036 long diff = 1000000*(dseconds) + timerStop.tv_usec - timerStart.tv_usec;
00037 if(diff<0) cerr << "start: " <<timerStart.tv_sec << " " << timerStart.tv_usec
00038 << " stop: " << timerStop.tv_sec << " " << timerStop.tv_usec << endl;
00039 return diff;
00040 }
00041 };
00042
00043 #endif
00044