Replaced external ID generation for event listeners

This commit is contained in:
Nav
2021-05-25 21:25:56 +01:00
parent 897482de1d
commit 3d7a9eb6f2
2 changed files with 4 additions and 16 deletions

View File

@@ -49,13 +49,8 @@ namespace Bloom
*/ */
std::string name; std::string name;
/** static inline std::atomic<std::size_t> lastId = 0;
* Each event listener is supplied an ID upon registering with the EventManager. std::size_t id = ++(this->lastId);
*
* @TODO: It might be a better idea to use an std::atomic to generate this auto-incremented ID. Like we do
* with events.
*/
size_t id = 0;
/** /**
* Holds all events registered to this listener. * Holds all events registered to this listener.
@@ -83,11 +78,7 @@ namespace Bloom
public: public:
explicit EventListener(const std::string& name): name(name) {}; explicit EventListener(const std::string& name): name(name) {};
void setId(size_t id) { std::size_t getId() const {
this->id = id;
};
size_t getId() const {
return this->id; return this->id;
}; };

View File

@@ -4,10 +4,7 @@ using 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(this->registerListenerMutex);
size_t newId = this->registeredListeners.size() + 1; this->registeredListeners.insert(std::pair(listener->getId(), listener));
this->registeredListeners.insert(std::pair<size_t, std::shared_ptr<EventListener>>(newId, listener));
listener->setId(newId);
} }
void EventManager::deregisterListener(size_t listenerId) { void EventManager::deregisterListener(size_t listenerId) {