The Battle for Wesnoth  1.19.5+dev
rate_counter.hpp
Go to the documentation of this file.
1 /*
2  Copyright (C) 2003 - 2024
3  Part of the Battle for Wesnoth Project https://www.wesnoth.org/
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY.
11 
12  See the COPYING file for more details.
13 */
14 
15 #pragma once
16 
17 namespace utils
18 {
20 {
21 public:
22  explicit rate_counter(unsigned rate) : rate_(rate) {}
23 
24  /** Increments the counter by one and checks whether it is now a multiple of the chosen rate. */
25  bool poll() { return (++counter_ % rate_) == 0; }
26 
27 private:
28  unsigned counter_ = 0;
29  unsigned rate_ = 1;
30 };
31 
32 } // end namespace utils
rate_counter(unsigned rate)
bool poll()
Increments the counter by one and checks whether it is now a multiple of the chosen rate.