22#ifndef L61_EVENT_SYSTEM_EVENTBUS_HPP
23#define L61_EVENT_SYSTEM_EVENTBUS_HPP
51 std::unordered_map<bus_frequency_t, std::unordered_map<bus_frequency_t, std::unique_ptr<Event>>>
_map;
63 void pushBand(
const std::set<bus_frequency_t>& freqBand);
68 this->
pushBand({std::forward<Ty>(vals)...});
71 void addEventBand(
const std::set<std::tuple<const bus_frequency_t&, const bus_frequency_t&, const Event&>>& eventBand);
This is an event bus leveraging l61::EventSystem::Event.
Definition EventBus.hpp:49
void operator[](const bus_frequency_t &frequency)
Definition EventBus.cpp:93
std::queue< bus_frequency_t > _freq_stack
Definition EventBus.hpp:52
EventBus(const EventBus &)=delete
EventBus(EventBus &)=delete
void push(const bus_frequency_t &freq)
Definition EventBus.cpp:72
void pushBand(Ty &&... vals)
Definition EventBus.hpp:66
~EventBus() override=default
void pumpIt()
Definition EventBus.cpp:54
void addEventBand(const std::set< std::tuple< const bus_frequency_t &, const bus_frequency_t &, const Event & > > &eventBand)
Definition EventBus.cpp:85
void removeFrequency(const bus_frequency_t &freq) override
Definition EventBus.cpp:46
EventBus & operator=(const EventBus &)=delete
void pushBand(const std::set< bus_frequency_t > &freqBand)
Definition EventBus.cpp:77
bool addEvent(const bus_frequency_t &freq, const bus_frequency_t &sub_freq, const Event &event) override
Definition EventBus.cpp:31
void removeEvent(const bus_frequency_t &freq, const bus_frequency_t &sub_freq) override
Definition EventBus.cpp:38
std::unordered_map< bus_frequency_t, std::unordered_map< bus_frequency_t, std::unique_ptr< Event > > > _map
Definition EventBus.hpp:51
EventBus(EventBus &&)=delete
l61_interface IEventBusContainer
Definition IEventBusContainer.hpp:31
void runEventBus(EventBus &bus, SignalQueue_t &signals)
Definition EventBus.cpp:99
std::variant< std::int32_t, std::string > bus_frequency_t
Definition types.hpp:39
std::queue< c_signal_t > SignalQueue_t
Definition baseTypes.hpp:29