00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00035 #if !defined(_TIFA_TIMER_H_)
00036
00040 #define _TIFA_TIMER_H_
00041
00042 #ifdef __cplusplus
00043 extern "C" {
00044 #endif
00045
00046 #if !defined(__TIMING__)
00047 #error "__TIMING__ must be defined before including this header."
00048 #endif
00049
00050 #if __TIMING__
00051 #include "stopwatch.h"
00052
00057 #define TIMING_FORMAT "%8.3f"
00058
00070 #define INIT_NAMED_TIMER(NAME) \
00071 stopwatch_t __TIFA_STOPWATCH_ ##NAME; \
00072 init_stopwatch(&__TIFA_STOPWATCH_ ##NAME);
00073
00078 #define RESET_NAMED_TIMER(NAME) \
00079 do { \
00080 reset_stopwatch(&__TIFA_STOPWATCH_ ##NAME); \
00081 } while (0)
00082
00089 #define START_NAMED_TIMER(NAME) \
00090 do { \
00091 start_stopwatch(&__TIFA_STOPWATCH_ ##NAME); \
00092 } while (0)
00093
00106 #define STOP_NAMED_TIMER(NAME) \
00107 do { \
00108 stop_stopwatch(&__TIFA_STOPWATCH_ ##NAME); \
00109 } while (0)
00110
00118 #define GET_NAMED_TIMING(NAME) \
00119 get_stopwatch_elapsed(&__TIFA_STOPWATCH_ ##NAME)
00120
00125 #define INIT_TIMER INIT_NAMED_TIMER()
00126
00131 #define RESET_TIMER RESET_NAMED_TIMER()
00132
00137 #define START_TIMER START_NAMED_TIMER()
00138
00143 #define STOP_TIMER STOP_NAMED_TIMER()
00144
00149 #define GET_TIMING GET_NAMED_TIMING()
00150 #else
00151 #define INIT_NAMED_TIMER(NAME)
00152 #define RESET_NAMED_TIMER(NAME)
00153 #define START_NAMED_TIMER(NAME)
00154 #define STOP_NAMED_TIMER(NAME)
00155 #define GET_NAMED_TIMING(NAME) (-1.0)
00156
00157 #define INIT_TIMER
00158 #define RESET_TIMER
00159 #define START_TIMER
00160 #define STOP_TIMER
00161 #define GET_TIMING (-1.0)
00162 #endif
00163
00164 #ifdef __cplusplus
00165 }
00166 #endif
00167
00168 #endif