aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/EventManager.cpp
diff options
context:
space:
mode:
authormax-001 <maxsmits21@kpnmail.nl>2024-12-05 17:25:50 +0100
committermax-001 <maxsmits21@kpnmail.nl>2024-12-05 17:25:50 +0100
commit0b942f4d6eb87fb623afbbae617478674c612ccc (patch)
tree9fd575e1793367e744b60b7d2bed626a72dc70f4 /src/crepe/api/EventManager.cpp
parent121387ba92a23d6f17b36331d25757abc899f7d2 (diff)
parent1f4e961d7f9d6887c807cac1a362f2d178b0860b (diff)
Merge remote-tracking branch 'origin/master' into max/AI
Diffstat (limited to 'src/crepe/api/EventManager.cpp')
-rw-r--r--src/crepe/api/EventManager.cpp46
1 files changed, 0 insertions, 46 deletions
diff --git a/src/crepe/api/EventManager.cpp b/src/crepe/api/EventManager.cpp
deleted file mode 100644
index 20f0dd3..0000000
--- a/src/crepe/api/EventManager.cpp
+++ /dev/null
@@ -1,46 +0,0 @@
-#include "EventManager.h"
-
-using namespace crepe;
-using namespace std;
-
-EventManager & EventManager::get_instance() {
- static EventManager instance;
- return instance;
-}
-
-void EventManager::dispatch_events() {
- for (auto & event : this->events_queue) {
- this->handle_event(event.type, event.channel, *event.event.get());
- }
- this->events_queue.clear();
-}
-
-void EventManager::handle_event(type_index type, event_channel_t channel, const Event & data) {
- auto handlers_it = this->subscribers.find(type);
- if (handlers_it == this->subscribers.end()) return;
-
- vector<CallbackEntry> & handlers = handlers_it->second;
- for (auto & handler : handlers) {
- bool check_channel = handler.channel != CHANNEL_ALL || channel != CHANNEL_ALL;
- if (check_channel && handler.channel != channel) continue;
-
- bool handled = handler.callback->exec(data);
- if (handled) return;
- }
-}
-
-void EventManager::clear() {
- this->subscribers.clear();
- this->events_queue.clear();
-}
-
-void EventManager::unsubscribe(subscription_t id) {
- for (auto & [event_type, handlers] : this->subscribers) {
- for (auto it = handlers.begin(); it != handlers.end(); it++) {
- // find listener with subscription id
- if ((*it).id != id) continue;
- it = handlers.erase(it);
- return;
- }
- }
-}