Very simple event bus implementation using std::function and typeid. All this does is fire any registered handler when called.
More...
#include <event_bus.h>
|
template<typename T> |
void | register_handler (std::function< void(T)> handler_fun) |
| Register a handler function to be called when a specific event is fired.
|
template<typename T> |
void | fire_event (T evt) |
| Trigger an event, called every registered handler.
|
void | fire_event (void *evt, std::string evt_name) |
| Trigger an event, called every registered handler. Allows specifying the event name. Used by task scheduler.
|
Very simple event bus implementation using std::function and typeid. All this does is fire any registered handler when called.
std::any could not be used as it can mess up over several .so. (typeinfo does NOT allow casting between several interpretations of the exact same struct)
◆ fire_event() [1/2]
template<typename T>
void satdump::EventBus::fire_event |
( |
T | evt | ) |
|
|
inline |
Trigger an event, called every registered handler.
- Parameters
-
◆ fire_event() [2/2]
void satdump::EventBus::fire_event |
( |
void * | evt, |
|
|
std::string | evt_name ) |
|
inline |
Trigger an event, called every registered handler. Allows specifying the event name. Used by task scheduler.
- Parameters
-
evt | event struct |
evt_name | event name to trigger |
◆ register_handler()
template<typename T>
void satdump::EventBus::register_handler |
( |
std::function< void(T)> | handler_fun | ) |
|
|
inline |
Register a handler function to be called when a specific event is fired.
- Parameters
-
handler_fun | function to register |
The documentation for this class was generated from the following file: