Extra2D/Extra2D/src/event/EventBus.cpp

30 lines
494 B
C++

#include <extra2d/event/EventBus.h>
namespace extra2d {
EventBus* EventBus::instance_ = nullptr;
EventBus::EventBus() {}
EventBus::~EventBus() {
clear();
}
EventBus* EventBus::getInstance() {
if (!instance_) {
instance_ = new EventBus();
}
return instance_;
}
void EventBus::clear() {
for (auto& pair : listeners_) {
for (auto& entry : pair.second) {
delete entry.listener;
}
}
listeners_.clear();
}
} // namespace extra2d