| /* | |
| * Utility class to measure time in a platform independent way. | |
| */ | |
| #ifndef TIMER_H | |
| #define TIMER_H | |
| class timer { | |
| private: | |
| uint64_t _start_us; | |
| uint64_t _timeout_us; | |
| uint64_t time_us(); | |
| #if __WIN32__ | |
| uint64_t _ticks_per_s; | |
| #endif | |
| public: | |
| timer(); | |
| void reset_us(uint64_t timeout); | |
| uint64_t elapsed_us(); | |
| double elapsed_ms(); | |
| int64_t remaining_us(); | |
| bool has_timed_out(); | |
| uint64_t time_ns(); | |
| virtual ~timer(); | |
| }; | |
| #endif /* TIMER_H */ |