Replaced external ID generation for event listeners
This commit is contained in:
@@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user