00001
00028
00029
00030 #ifndef SIMPLETIME_H_
00031 #define SIMPLETIME_H_
00032
00033 #include "sdhlibrary_settings.h"
00034
00035
00036
00037
00038
00039 #if SDH_USE_VCC
00040 #include <sys/timeb.h>
00041 #include <time.h>
00042 #else
00043 # include <sys/time.h>
00044 #endif
00045
00046
00047
00048
00049
00050 #include "sdhexception.h"
00051
00052
00053
00054
00055
00056 NAMESPACE_SDH_START
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00077 class cSimpleTime
00078 {
00079 protected:
00080 #if SDH_USE_VCC
00081 struct _timeb timebuffer;
00082 #else
00083 struct timeval a_time;
00084 #endif
00085
00086 public:
00088 cSimpleTime()
00089 {
00090 StoreNow();
00091 }
00092
00093
00094
00096 void StoreNow( void )
00097 {
00098 #if SDH_USE_VCC
00099 _ftime64_s( &timebuffer );
00100
00101 #else
00102 gettimeofday( &a_time, NULL );
00103 #endif
00104 }
00105
00106
00108 double Elapsed( void ) const
00109 {
00110 cSimpleTime now;
00111
00112 return Elapsed( now );
00113 }
00114
00115
00116
00118 long Elapsed_us( void ) const
00119 {
00120 cSimpleTime now;
00121
00122 return Elapsed_us( now );
00123 }
00124
00125
00126
00127 #if SDH_USE_VCC
00128
00129 double Elapsed( cSimpleTime const& other ) const
00130 {
00131 double seconds = double( other.timebuffer.time - timebuffer.time);
00132 double msec = double( other.timebuffer.millitm - timebuffer.millitm );
00133
00134 return seconds + msec / 1000.0;
00135 }
00136
00137
00139 long Elapsed_us( cSimpleTime const& other ) const
00140 {
00141 long seconds = long( other.timebuffer.time - timebuffer.time);
00142 long msec = long( other.timebuffer.millitm - timebuffer.millitm );
00143
00144 return seconds * 1000000 + msec * 1000;
00145 }
00146
00147 #else
00148
00149 double Elapsed( cSimpleTime const& other ) const
00150 {
00151 double seconds = double( other.a_time.tv_sec - a_time.tv_sec );
00152 double usec = double( other.a_time.tv_usec - a_time.tv_usec );
00153
00154 return seconds + usec / 1000000.0;
00155 }
00156
00157
00159 long Elapsed_us( cSimpleTime const& other ) const
00160 {
00161 long seconds = other.a_time.tv_sec - a_time.tv_sec;
00162 long usec = other.a_time.tv_usec - a_time.tv_usec;
00163
00164 return seconds * 1000000 + usec;
00165 }
00166
00167
00168
00170 timeval Timeval( void )
00171 {
00172 return a_time;
00173 }
00174 #endif
00175 };
00176
00177
00178 NAMESPACE_SDH_END
00179
00180 #endif
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193