#pragma once #include #include #include "models/timer.hpp" class FreqCounter { public: FreqCounter(FreqTimer const & timer) : _timer(&timer) {} void reset() { _cnt = _overtime_cnt = 0; } void inc(); uint32_t cnt() const { return _cnt; } uint32_t overtime_cnt() const { return _overtime_cnt; } [[nodiscard]] double rate() const; [[nodiscard]] double overtime_rate() const; [[nodiscard]] std::string display_value() const; [[nodiscard]] std::string rate_display() const; private: uint32_t _cnt; uint32_t _overtime_cnt; FreqTimer const * _timer; };