28 lines
486 B
C++
28 lines
486 B
C++
/*
|
|
* 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 */
|