#ifndef TIMER_H #define TIMER_H #include #include #include #include class Timer { public: Timer(); ~Timer(); void start(); void pause(); void resume(); void stop(); bool is_running() const; bool is_paused() const; int64_t get_elapsed_time() const; private: std::atomic running; std::atomic paused; std::thread timer_thread; int64_t elapsed_time; std::chrono::steady_clock::time_point start_time; std::chrono::steady_clock::time_point pause_start_time; void update_elapsed_time(); }; #endif // TIMER_H