aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/api/EventManager.cpp
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-28 10:13:11 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-28 10:13:11 +0100
commit6fd7cec7d4bbf5aeb361b3f1337671bb0f9af61b (patch)
tree01f6977c66a1e07e07aae42358a7e1a4e55ef53c /src/crepe/api/EventManager.cpp
parentd1eed940b8119e95a14f1d08bf26184c7f0a0d8f (diff)
manager mediator refactor
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;
- }
- }
-}