aboutsummaryrefslogtreecommitdiff
path: root/src/timer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/timer.cpp')
-rw-r--r--src/timer.cpp105
1 files changed, 47 insertions, 58 deletions
diff --git a/src/timer.cpp b/src/timer.cpp
index c839a48d..40e32640 100644
--- a/src/timer.cpp
+++ b/src/timer.cpp
@@ -2,62 +2,51 @@
#include "application.hpp"
-namespace cru
-{
- TimerManager* TimerManager::GetInstance()
- {
- return Application::GetInstance()->ResolveSingleton<TimerManager>([](auto)
- {
- return new TimerManager{};
- });
- }
-
- UINT_PTR TimerManager::CreateTimer(const UINT milliseconds, const bool loop, const TimerAction& action)
- {
- const auto id = current_count_++;
- ::SetTimer(Application::GetInstance()->GetGodWindow()->GetHandle(), id, milliseconds, nullptr);
- map_.emplace(id, std::make_pair(loop, action));
- return id;
- }
-
- void TimerManager::KillTimer(const UINT_PTR id)
- {
- const auto find_result = map_.find(id);
- if (find_result != map_.cend())
- {
- ::KillTimer(Application::GetInstance()->GetGodWindow()->GetHandle(), id);
- map_.erase(find_result);
- }
- }
-
- std::optional<std::pair<bool, TimerAction>> TimerManager::GetAction(const UINT_PTR id)
- {
- const auto find_result = map_.find(id);
- if (find_result == map_.cend())
- return std::nullopt;
- return find_result->second;
- }
-
- TimerTask::TimerTask(const UINT_PTR id)
- : id_(id)
- {
-
- }
-
- void TimerTask::Cancel() const
- {
- TimerManager::GetInstance()->KillTimer(id_);
- }
-
- TimerTask SetTimeout(std::chrono::milliseconds milliseconds, const TimerAction& action)
- {
- const auto id = TimerManager::GetInstance()->CreateTimer(static_cast<UINT>(milliseconds.count()), false, action);
- return TimerTask(id);
- }
-
- TimerTask SetInterval(std::chrono::milliseconds milliseconds, const TimerAction& action)
- {
- const auto id = TimerManager::GetInstance()->CreateTimer(static_cast<UINT>(milliseconds.count()), true, action);
- return TimerTask(id);
- }
+namespace cru {
+TimerManager* TimerManager::GetInstance() {
+ return Application::GetInstance()->ResolveSingleton<TimerManager>(
+ [](auto) { return new TimerManager{}; });
}
+
+UINT_PTR TimerManager::CreateTimer(const UINT milliseconds, const bool loop,
+ const TimerAction& action) {
+ const auto id = current_count_++;
+ ::SetTimer(Application::GetInstance()->GetGodWindow()->GetHandle(), id,
+ milliseconds, nullptr);
+ map_.emplace(id, std::make_pair(loop, action));
+ return id;
+}
+
+void TimerManager::KillTimer(const UINT_PTR id) {
+ const auto find_result = map_.find(id);
+ if (find_result != map_.cend()) {
+ ::KillTimer(Application::GetInstance()->GetGodWindow()->GetHandle(), id);
+ map_.erase(find_result);
+ }
+}
+
+std::optional<std::pair<bool, TimerAction>> TimerManager::GetAction(
+ const UINT_PTR id) {
+ const auto find_result = map_.find(id);
+ if (find_result == map_.cend()) return std::nullopt;
+ return find_result->second;
+}
+
+TimerTask::TimerTask(const UINT_PTR id) : id_(id) {}
+
+void TimerTask::Cancel() const { TimerManager::GetInstance()->KillTimer(id_); }
+
+TimerTask SetTimeout(std::chrono::milliseconds milliseconds,
+ const TimerAction& action) {
+ const auto id = TimerManager::GetInstance()->CreateTimer(
+ static_cast<UINT>(milliseconds.count()), false, action);
+ return TimerTask(id);
+}
+
+TimerTask SetInterval(std::chrono::milliseconds milliseconds,
+ const TimerAction& action) {
+ const auto id = TimerManager::GetInstance()->CreateTimer(
+ static_cast<UINT>(milliseconds.count()), true, action);
+ return TimerTask(id);
+}
+} // namespace cru