/src/rt/sync/timer.h

http://github.com/jruderman/rust · C Header · 27 lines · 21 code · 3 blank · 3 comment · 0 complexity · 6d224ee38bc1509c68e621d8142d4cf8 MD5 · raw file

  1. /*
  2. * Utility class to measure time in a platform independent way.
  3. */
  4. #ifndef TIMER_H
  5. #define TIMER_H
  6. class timer {
  7. private:
  8. uint64_t _start_us;
  9. uint64_t _timeout_us;
  10. uint64_t time_us();
  11. #if __WIN32__
  12. uint64_t _ticks_per_s;
  13. #endif
  14. public:
  15. timer();
  16. void reset_us(uint64_t timeout);
  17. uint64_t elapsed_us();
  18. double elapsed_ms();
  19. int64_t remaining_us();
  20. bool has_timed_out();
  21. uint64_t time_ns();
  22. virtual ~timer();
  23. };
  24. #endif /* TIMER_H */