Replaced external ID generation for event listeners
This commit is contained in:
@@ -49,13 +49,8 @@ namespace Bloom
|
||||
*/
|
||||
std::string name;
|
||||
|
||||
/**
|
||||
* Each event listener is supplied an ID upon registering with the EventManager.
|
||||
*
|
||||
* @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;
|
||||
static inline std::atomic<std::size_t> lastId = 0;
|
||||
std::size_t id = ++(this->lastId);
|
||||
|
||||
/**
|
||||
* Holds all events registered to this listener.
|
||||
@@ -83,11 +78,7 @@ namespace Bloom
|
||||
public:
|
||||
explicit EventListener(const std::string& name): name(name) {};
|
||||
|
||||
void setId(size_t id) {
|
||||
this->id = id;
|
||||
};
|
||||
|
||||
size_t getId() const {
|
||||
std::size_t getId() const {
|
||||
return this->id;
|
||||
};
|
||||
|
||||
|
||||
@@ -4,10 +4,7 @@ using namespace Bloom;
|
||||
|
||||
void EventManager::registerListener(std::shared_ptr<EventListener> listener) {
|
||||
auto registerListenersLock = std::unique_lock(this->registerListenerMutex);
|
||||
size_t newId = this->registeredListeners.size() + 1;
|
||||
|
||||
this->registeredListeners.insert(std::pair<size_t, std::shared_ptr<EventListener>>(newId, listener));
|
||||
listener->setId(newId);
|
||||
this->registeredListeners.insert(std::pair(listener->getId(), listener));
|
||||
}
|
||||
|
||||
void EventManager::deregisterListener(size_t listenerId) {
|
||||
|
||||
Reference in New Issue
Block a user