Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00011 #include <admodel.h>
00012 #if (defined(linux) || defined(__linux__)) && !defined(__WIN32)
00013 #include <sys/time.h>
00014 #include <iostream>
00015
00020 adtimer::adtimer (void)
00021 {
00022 gettimeofday(&tv,0);
00023
00024 tvold.tv_sec=tv.tv_sec;
00025 tvold.tv_usec=tv.tv_usec;
00026
00027 }
00028
00033 double adtimer::get_elapsed_time_and_reset(void)
00034 {
00035 gettimeofday(&tv,0);
00036
00037 int nsec=0;
00038 int nusec=0;
00039 if ( tv.tv_usec< tvold.tv_usec)
00040 {
00041 nsec=tv.tv_sec-tvold.tv_sec-1;
00042 nusec=tv.tv_usec-tvold.tv_usec+1000000;
00043 }
00044 else
00045 {
00046 nsec=tv.tv_sec-tvold.tv_sec;
00047 nusec=tv.tv_usec-tvold.tv_usec;
00048 }
00049 tvold.tv_sec=tv.tv_sec;
00050 tvold.tv_usec=tv.tv_usec;
00051 return 1000.*nsec+nusec/1000.;
00052 }
00053
00058 double adtimer::get_elapsed_time(void)
00059 {
00060 int nsec=0;
00061 int nusec=0;
00062 gettimeofday(&tv,0);
00063
00064 if ( tv.tv_usec< tvold.tv_usec)
00065 {
00066 nsec=tv.tv_sec-tvold.tv_sec-1;
00067 nusec=tv.tv_usec-tvold.tv_usec+1000000;
00068 }
00069 else
00070 {
00071 nsec=tv.tv_sec-tvold.tv_sec;
00072 nusec=tv.tv_usec-tvold.tv_usec;
00073 }
00074 return 1000.*nsec+nusec/1000.;
00075 }
00076
00077 #else
00078 #include <windows.h>
00079
00084 adtimer::adtimer (void)
00085 {
00086 t=GetCurrentTime();
00087 told=t;
00088 }
00089
00094 double adtimer::get_elapsed_time_and_reset(void)
00095 {
00096 t=GetCurrentTime();
00097
00098 double diff=t-told;
00099 told=t;
00100 return diff;
00101 }
00102
00107 double adtimer::get_elapsed_time(void)
00108 {
00109 t=GetCurrentTime();
00110
00111 double diff=t-told;
00112 return diff;
00113 }
00114
00115 #endif