Recast  1
Game with custom magic
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
SynchronizedBlockingTimer.hpp
Go to the documentation of this file.
1 //
2 // Created by Oleg Morozenkov on 31.05.17.
3 //
4 
5 #ifndef RECAST_BLOCKINGTIMER_H
6 #define RECAST_BLOCKINGTIMER_H
7 
8 
9 #include <mutex>
11 
15 class SynchronizedBlockingTimer : public virtual ITimerBlockable<ITimer> {
16 public:
17  SynchronizedBlockingTimer(std::chrono::milliseconds minDelta);
18 
19  std::chrono::milliseconds delta() const override;
20  std::chrono::milliseconds minDelta() const override;
21  double deltaFloatSeconds() const override;
22  bool isFirstUpdate() const override;
23 
24  void update() override;
25  void wait() override;
26 
27 protected:
28  std::chrono::milliseconds _minDelta;
29 
30  std::chrono::system_clock::time_point _lastUpdateTime;
31  mutable std::mutex _lastUpdateTimeMutex;
32 
34 };
35 
36 
37 #endif //RECAST_BLOCKINGTIMER_H
std::chrono::system_clock::time_point _lastUpdateTime
Definition: SynchronizedBlockingTimer.hpp:30
std::mutex _lastUpdateTimeMutex
Definition: SynchronizedBlockingTimer.hpp:31
std::chrono::milliseconds minDelta() const override
Definition: SynchronizedBlockingTimer.cpp:21
double deltaFloatSeconds() const override
Definition: SynchronizedBlockingTimer.cpp:25
void update() override
Definition: SynchronizedBlockingTimer.cpp:34
std::chrono::milliseconds delta() const override
Definition: SynchronizedBlockingTimer.cpp:16
Definition: ITimerBlockable.hpp:33
Definition: SynchronizedBlockingTimer.hpp:15
bool isFirstUpdate() const override
Definition: SynchronizedBlockingTimer.cpp:29
bool _isFirstUpdate
Definition: SynchronizedBlockingTimer.hpp:33
void wait() override
Definition: SynchronizedBlockingTimer.cpp:40
SynchronizedBlockingTimer(std::chrono::milliseconds minDelta)
Definition: SynchronizedBlockingTimer.cpp:11
std::chrono::milliseconds _minDelta
Definition: SynchronizedBlockingTimer.hpp:28