33 #ifndef __INCLUDE_MIST_TIMER__
34 #define __INCLUDE_MIST_TIMER__
37 #ifndef __INCLUDE_MIST_CONF_H__
41 #if defined( __MIST_WINDOWS__ ) && __MIST_WINDOWS__ > 0
45 #pragma comment ( lib, "winmm.lib" )
77 #if defined( __MIST_WINDOWS__ ) && __MIST_WINDOWS__ > 0
80 LARGE_INTEGER largeint;
81 unsigned long long int uint64;
85 static timeval __QueryPerformanceFrequency__( )
88 QueryPerformanceFrequency( &( dmy.largeint ) );
92 static timeval _QueryPerformanceFrequency_( )
94 static timeval dmy = __QueryPerformanceFrequency__( );
98 static double _timeGetTime_( )
101 if( QueryPerformanceCounter( &( dmy.largeint ) ) )
103 return( static_cast< double >( dmy.uint64 ) / static_cast< double >( _QueryPerformanceFrequency_( ).uint64 ) );
107 return( static_cast< double >( timeGetTime( ) ) / 1000.0 );
111 static double _timeGetTime_( )
114 gettimeofday( &dmy, NULL );
115 return( static_cast< double >( dmy.tv_sec ) + static_cast< double >( dmy.tv_usec ) / 1000000.0 );
124 timer( ) : _start_time( _timeGetTime_( ) )
126 _start_time = _timeGetTime_( );
132 _start_time = _timeGetTime_( );
139 double elapse( )
const
141 return( _timeGetTime_( ) - _start_time );
191 double elapse( )
const
195 return( sec_ + t_.elapse( ) );
209 sec_ += t_.elapse( );
256 #endif // __INCLUDE_MIST_TIMER__