Preparation for converting EventManager member functions to static member functions

This commit is contained in:
Nav
2022-03-20 17:36:36 +00:00
parent ab1a379efa
commit 9922d1eca7
2 changed files with 10 additions and 10 deletions

View File

@@ -3,19 +3,19 @@
namespace Bloom namespace Bloom
{ {
void EventManager::registerListener(std::shared_ptr<EventListener> listener) { void EventManager::registerListener(std::shared_ptr<EventListener> listener) {
auto registerListenersLock = std::unique_lock(this->registerListenerMutex); auto registerListenersLock = std::unique_lock(EventManager::registerListenerMutex);
this->registeredListeners.insert(std::pair(listener->getId(), std::move(listener))); EventManager::registeredListeners.insert(std::pair(listener->getId(), std::move(listener)));
} }
void EventManager::deregisterListener(size_t listenerId) { void EventManager::deregisterListener(size_t listenerId) {
auto registerListenersLock = std::unique_lock(this->registerListenerMutex); auto registerListenersLock = std::unique_lock(EventManager::registerListenerMutex);
this->registeredListeners.erase(listenerId); EventManager::registeredListeners.erase(listenerId);
} }
void EventManager::triggerEvent(const std::shared_ptr<const Events::Event>& event) { void EventManager::triggerEvent(const std::shared_ptr<const Events::Event>& event) {
auto registerListenersLock = std::unique_lock(this->registerListenerMutex); auto registerListenersLock = std::unique_lock(EventManager::registerListenerMutex);
for (const auto&[listenerId, listener] : this->registeredListeners) { for (const auto&[listenerId, listener] : EventManager::registeredListeners) {
if (listener->isEventTypeRegistered(event->getType())) { if (listener->isEventTypeRegistered(event->getType())) {
listener->registerEvent(event); listener->registerEvent(event);
} }
@@ -23,9 +23,9 @@ namespace Bloom
} }
bool EventManager::isEventTypeListenedFor(Events::EventType eventType) { bool EventManager::isEventTypeListenedFor(Events::EventType eventType) {
auto registerListenersLock = std::unique_lock(this->registerListenerMutex); auto registerListenersLock = std::unique_lock(EventManager::registerListenerMutex);
for (const auto&[listenerId, listener] : this->registeredListeners) { for (const auto& [listenerId, listener] : EventManager::registeredListeners) {
if (listener->isEventTypeRegistered(eventType)) { if (listener->isEventTypeRegistered(eventType)) {
return true; return true;
} }

View File

@@ -60,7 +60,7 @@ namespace Bloom
/** /**
* A mapping of listener IDs to registered listeners. Each registered listener is given an interger ID. * A mapping of listener IDs to registered listeners. Each registered listener is given an interger ID.
*/ */
std::map<size_t, std::shared_ptr<EventListener>> registeredListeners; static inline std::map<size_t, std::shared_ptr<EventListener>> registeredListeners;
std::mutex registerListenerMutex; static inline std::mutex registerListenerMutex;
}; };
} }