Preparation for converting EventManager member functions to static member functions
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user