summaryrefslogtreecommitdiff
path: root/louloulibs/utils/timed_events_manager.cpp
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2017-06-24 09:21:37 +0200
committerJonas Smedegaard <dr@jones.dk>2017-06-24 09:21:37 +0200
commit3d39f109ba8ea7ae9778c58bd1665b9e8e0f45cb (patch)
tree9a5684babcd16d302fbe59c56b6045660ad62488 /louloulibs/utils/timed_events_manager.cpp
parentf9cee98aacd6aea8ccb7f5677b4ff1e1e234e4d1 (diff)
parentc21cbbf9667991d2b928562a9c199e625d3f9bba (diff)
downloadbiboumi-3d39f109ba8ea7ae9778c58bd1665b9e8e0f45cb.tar.gz
biboumi-3d39f109ba8ea7ae9778c58bd1665b9e8e0f45cb.tar.bz2
biboumi-3d39f109ba8ea7ae9778c58bd1665b9e8e0f45cb.tar.xz
biboumi-3d39f109ba8ea7ae9778c58bd1665b9e8e0f45cb.zip
Updated version 5.0 from 'upstream/5.0'
with Debian dir 2ae31d03ffb1d79153a692af23c7b2b097cc4b2b
Diffstat (limited to 'louloulibs/utils/timed_events_manager.cpp')
-rw-r--r--louloulibs/utils/timed_events_manager.cpp73
1 files changed, 0 insertions, 73 deletions
diff --git a/louloulibs/utils/timed_events_manager.cpp b/louloulibs/utils/timed_events_manager.cpp
deleted file mode 100644
index 67d61fe..0000000
--- a/louloulibs/utils/timed_events_manager.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-#include <utils/timed_events.hpp>
-
-TimedEventsManager& TimedEventsManager::instance()
-{
- static TimedEventsManager inst;
- return inst;
-}
-
-void TimedEventsManager::add_event(TimedEvent&& event)
-{
- for (auto it = this->events.begin(); it != this->events.end(); ++it)
- {
- if (it->is_after(event))
- {
- this->events.emplace(it, std::move(event));
- return;
- }
- }
- this->events.emplace_back(std::move(event));
-}
-
-std::chrono::milliseconds TimedEventsManager::get_timeout() const
-{
- if (this->events.empty())
- return utils::no_timeout;
- return this->events.front().get_timeout();
-}
-
-std::size_t TimedEventsManager::execute_expired_events()
-{
- std::size_t count = 0;
- const auto now = std::chrono::steady_clock::now();
- for (auto it = this->events.begin(); it != this->events.end();)
- {
- if (!it->is_after(now))
- {
- TimedEvent copy(std::move(*it));
- it = this->events.erase(it);
- ++count;
- copy.execute();
- if (copy.repeat)
- {
- copy.time_point += copy.repeat_delay;
- this->add_event(std::move(copy));
- }
- continue;
- }
- else
- break;
- }
- return count;
-}
-
-std::size_t TimedEventsManager::cancel(const std::string& name)
-{
- std::size_t res = 0;
- for (auto it = this->events.begin(); it != this->events.end();)
- {
- if (it->get_name() == name)
- {
- it = this->events.erase(it);
- res++;
- }
- else
- ++it;
- }
- return res;
-}
-
-std::size_t TimedEventsManager::size() const
-{
- return this->events.size();
-}