SparrowEngine/src/messagebus.cpp

30 lines
495 B
C++

#include "messagebus.h"
#include "system.h"
MessageBus::MessageBus()
{
}
void MessageBus::registerSystem(SystemType type, System* system){
systems[type] = system;
}
void MessageBus::update()
{
while (!message_list.empty()){
Message* msg = message_list.front();
message_list.pop();
for(auto const &entity : systems){
entity.second->handleMessage(msg);
}
}
}
void MessageBus::postMessage(Message *msg)
{
message_list.push(msg);
}