aboutsummaryrefslogtreecommitdiff
path: root/mwe/events/src/eventManager.cpp
diff options
context:
space:
mode:
authorWBoerenkamps <wrj.boerenkamps@student.avans.nl>2024-10-25 21:14:09 +0200
committerWBoerenkamps <wrj.boerenkamps@student.avans.nl>2024-10-25 21:14:09 +0200
commit26bb39991aaebe3b7ef8869f217db490143bc0e6 (patch)
treee3ec5530e298257ef347f996f0a2c5a150d099f7 /mwe/events/src/eventManager.cpp
parent15a4c4a1cf67e13be53ef423c51c56488f332ea9 (diff)
merge conflicts fixed
Diffstat (limited to 'mwe/events/src/eventManager.cpp')
-rw-r--r--mwe/events/src/eventManager.cpp152
1 files changed, 0 insertions, 152 deletions
diff --git a/mwe/events/src/eventManager.cpp b/mwe/events/src/eventManager.cpp
index e022849..c37dcb0 100644
--- a/mwe/events/src/eventManager.cpp
+++ b/mwe/events/src/eventManager.cpp
@@ -1,6 +1,5 @@
#include "eventManager.h"
-<<<<<<< HEAD
void EventManager::shutdown()
{
subscribers.clear();
@@ -96,155 +95,4 @@ void EventManager::dispatchEvents()
++eventIt;
}
}
-=======
-void EventManager::shutdown() { m_subscribers.clear(); }
-
-void EventManager::subscribe(int eventType,
- std::unique_ptr<IEventHandlerWrapper> && handler,
- int eventId) {
- if (eventId) {
- std::unordered_map<
- int, std::unordered_map<
- int, std::vector<std::unique_ptr<IEventHandlerWrapper>>>>::
- iterator subscribers
- = m_subscribersByEventId.find(eventType);
-
- if (subscribers != m_subscribersByEventId.end()) {
- std::unordered_map<
- int, std::vector<std::unique_ptr<IEventHandlerWrapper>>> &
- handlersMap
- = subscribers->second;
- std::unordered_map<
- int,
- std::vector<std::unique_ptr<IEventHandlerWrapper>>>::iterator
- handlers
- = handlersMap.find(eventId);
- if (handlers != handlersMap.end()) {
- handlers->second.emplace_back(std::move(handler));
- return;
- }
- }
- m_subscribersByEventId[eventType][eventId].emplace_back(
- std::move(handler));
-
- } else {
- std::unordered_map<
- int, std::vector<std::unique_ptr<IEventHandlerWrapper>>>::iterator
- subscribers
- = m_subscribers.find(eventType);
- if (subscribers != m_subscribers.end()) {
- std::vector<std::unique_ptr<IEventHandlerWrapper>> & handlers
- = subscribers->second;
- for (std::unique_ptr<IEventHandlerWrapper> & it : handlers) {
- if (it->getType() == handler->getType()) {
- // log for double register
- return;
- }
- }
- handlers.emplace_back(std::move(handler));
- } else {
- m_subscribers[eventType].emplace_back(std::move(handler));
- }
- }
-}
-
-void EventManager::unsubscribe(int eventType, const std::string & handlerName,
- int eventId) {
- if (eventId) {
- std::unordered_map<
- int, std::unordered_map<
- int, std::vector<std::unique_ptr<IEventHandlerWrapper>>>>::
- iterator subscribers
- = m_subscribersByEventId.find(eventType);
- if (subscribers != m_subscribersByEventId.end()) {
- std::unordered_map<
- int, std::vector<std::unique_ptr<IEventHandlerWrapper>>> &
- handlersMap
- = subscribers->second;
- std::unordered_map<
- int,
- std::vector<std::unique_ptr<IEventHandlerWrapper>>>::iterator
- handlers
- = handlersMap.find(eventId);
- if (handlers != handlersMap.end()) {
- std::vector<std::unique_ptr<IEventHandlerWrapper>> & callbacks
- = handlers->second;
- for (std::vector<
- std::unique_ptr<IEventHandlerWrapper>>::iterator it
- = callbacks.begin();
- it != callbacks.end(); ++it) {
- if (it->get()->getType() == handlerName) {
- it = callbacks.erase(it);
- return;
- }
- }
- }
- }
- } else {
- std::unordered_map<
- int, std::vector<std::unique_ptr<IEventHandlerWrapper>>>::iterator
- handlersIt
- = m_subscribers.find(eventType);
- if (handlersIt != m_subscribers.end()) {
- std::vector<std::unique_ptr<IEventHandlerWrapper>> & handlers
- = handlersIt->second;
- for (std::vector<std::unique_ptr<IEventHandlerWrapper>>::iterator it
- = handlers.begin();
- it != handlers.end(); ++it) {
- if (it->get()->getType() == handlerName) {
- it = handlers.erase(it);
- return;
- }
- }
- }
- }
-}
-
-void EventManager::triggerEvent(const Event & event_, int eventId) {
- std::vector<std::unique_ptr<IEventHandlerWrapper>> & handlers
- = m_subscribers[event_.getEventType()];
- for (std::unique_ptr<IEventHandlerWrapper> & handler : handlers) {
- handler->exec(event_);
- }
-
- std::unordered_map<
- int, std::vector<std::unique_ptr<IEventHandlerWrapper>>> & handlersMap
- = m_subscribersByEventId[event_.getEventType()];
- std::unordered_map<
- int, std::vector<std::unique_ptr<IEventHandlerWrapper>>>::iterator
- handlersIt
- = handlersMap.find(eventId);
- if (handlersIt != handlersMap.end()) {
- std::vector<std::unique_ptr<IEventHandlerWrapper>> & callbacks
- = handlersIt->second;
- for (std::vector<std::unique_ptr<IEventHandlerWrapper>>::iterator it
- = callbacks.begin();
- it != callbacks.end();) {
- std::unique_ptr<IEventHandlerWrapper> & handler = *it;
- handler->exec(event_);
- if (handler->isDestroyOnSuccess()) {
- it = callbacks.erase(it);
- } else {
- ++it;
- }
- }
- }
-}
-
-void EventManager::queueEvent(std::unique_ptr<Event> && event_, int eventId) {
- m_eventsQueue.emplace_back(std::move(event_), eventId);
-}
-
-void EventManager::dispatchEvents() {
- for (std::vector<std::pair<std::unique_ptr<Event>, int>>::iterator eventIt
- = m_eventsQueue.begin();
- eventIt != m_eventsQueue.end();) {
- if (!eventIt->first.get()->getHandled()) {
- triggerEvent(*eventIt->first.get(), eventIt->second);
- eventIt = m_eventsQueue.erase(eventIt);
- } else {
- ++eventIt;
- }
- }
->>>>>>> b3b762a34e7ccb4a0dcd041a693ac7180af16002
}