summaryrefslogtreecommitdiff
path: root/louloulibs/utils/timed_events_manager.cpp
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2017-03-14 21:45:23 +0100
committerlouiz’ <louiz@louiz.org>2017-03-14 21:45:23 +0100
commit0ab40dc1ab4e689921da54080b135e1d22b1c586 (patch)
tree238ac477aa6b29a8d1e187a8d97ecbcbbbc663ef /louloulibs/utils/timed_events_manager.cpp
parent2d3806152e854ace7533fc3ad34d4ac1c44e9687 (diff)
downloadbiboumi-0ab40dc1ab4e689921da54080b135e1d22b1c586.tar.gz
biboumi-0ab40dc1ab4e689921da54080b135e1d22b1c586.tar.bz2
biboumi-0ab40dc1ab4e689921da54080b135e1d22b1c586.tar.xz
biboumi-0ab40dc1ab4e689921da54080b135e1d22b1c586.zip
Refactoring louloulibs and cmake
Use OBJECT libraries Remove the louloulibs directory Write FOUND variables in the cache
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();
-}