30 lines
495 B
C++
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);
|
|
}
|
|
|
|
|