WIP: Work done on EventBus

This commit is contained in:
Suraxius committed 2021-03-11 23:20:42 +01:00
1 parent 1dd457d2d2
commit 3be9e64f7e
6 files changed
+67 -22

No files matched your search

+26 -4
View File
@@ -4,22 +4,44 @@
namespace Plains {
namespace Core {
EventBus::EventBus(Logger& logger) : _logger(logger), _thread(&EventBus::run, this) {
_logger.debug.ln("Hi from EventBus Constructor. Not Theaded");
// EventBus Class
EventBus::EventBus(Logger& logger) : _logger(logger) {
_logger.debug.ln ("Starting Event Bus...");
_thread = thread(&EventBus::run, this);
}
EventBus::~EventBus() {
_thread.join();
// destroy all events in _events vector
_logger.debug.ln ("EventBus has been shut down.");
}
void EventBus::test() {
_logger.debug << "Testing from within EventBus!" << Logger::commit;
Event* EventBus::registerEvent(const string eventID) {
_logger.debug << "Registering new Event " << eventID << Logger::commit;
//If event with that id does not exist, create it:
Event* event = new Event(eventID);
_events.push_back(event);
return event;
}
Event* EventBus::getEvent(const string& eventID) {
_logger.debug.ln("Registering new Event...");
//Temporarily return nothing:
return NULL;
}
void EventBus::run() {
_logger.debug.ln("Hi from EventBus run method! From within Event Thread!");
}
// Event Class
Event::Event(const string id) : _id(id) {}
void Event::subscribe(EventSubscriber* es) { _subscribers.push_back(es); }
}}