aboutsummaryrefslogtreecommitdiff
path: root/src/timer.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2019-03-31 17:14:47 +0800
committercrupest <crupest@outlook.com>2019-03-31 17:14:47 +0800
commitfbfd90255731954fb80483f4ba7188d3611fafec (patch)
tree8e3283c911d7aec76130d6a1dc7f5d8a85512b59 /src/timer.cpp
parent877f65e2e2c40eecc7cfeb194dc9d391af60711b (diff)
downloadcru-fbfd90255731954fb80483f4ba7188d3611fafec.tar.gz
cru-fbfd90255731954fb80483f4ba7188d3611fafec.tar.bz2
cru-fbfd90255731954fb80483f4ba7188d3611fafec.zip
...
Diffstat (limited to 'src/timer.cpp')
-rw-r--r--src/timer.cpp52
1 files changed, 0 insertions, 52 deletions
diff --git a/src/timer.cpp b/src/timer.cpp
deleted file mode 100644
index 40e32640..00000000
--- a/src/timer.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-#include "timer.hpp"
-
-#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