diff options
author | flu0r1ne <flu0r1ne@flu0r1ne.net> | 2023-07-13 12:20:29 -0500 |
---|---|---|
committer | flu0r1ne <flu0r1ne@flu0r1ne.net> | 2023-07-13 12:20:29 -0500 |
commit | 2cb9b6fdc38a5df00ade737f90a9daf685ab89c3 (patch) | |
tree | 0a01a5fff4785520ae1a8d400b36f6bcdf84c532 /src/models/counter.hpp | |
download | freqtimer-web-2cb9b6fdc38a5df00ade737f90a9daf685ab89c3.tar.xz freqtimer-web-2cb9b6fdc38a5df00ade737f90a9daf685ab89c3.zip |
Init commit
Diffstat (limited to 'src/models/counter.hpp')
-rw-r--r-- | src/models/counter.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/models/counter.hpp b/src/models/counter.hpp new file mode 100644 index 0000000..d1b68fc --- /dev/null +++ b/src/models/counter.hpp @@ -0,0 +1,33 @@ +#pragma once + +#include <inttypes.h> +#include <string> +#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; } + + [[nodiscard]] double rate() const; + + [[nodiscard]] double overtime_rate() const; + + [[nodiscard]] std::string display_value() const; + + + private: + + uint32_t _cnt; + uint32_t _overtime_cnt; + FreqTimer const * _timer; +}; |