MayaFlux 0.3.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ add_event()

void MayaFlux::Vruta::EventManager::add_event ( const std::shared_ptr< Event > &  event,
const std::string &  name = "" 
)

Add a event to the manager.

Parameters
eventEvent to add
nameOptional name for the event (for event management)

Definition at line 5 of file EventManager.cpp.

6{
7 if (!event)
8 return;
9
10 std::string event_name = name.empty() ? auto_generate_name(event) : name;
11
12 if (!name.empty() && m_named_events.count(event_name)) {
13 remove_event(event_name);
14 }
15
16 m_events.push_back(event);
17 if (!name.empty()) {
18 m_named_events[event_name] = event;
19 }
20
21 if (event->is_active()) {
22 auto handle = event->get_handle();
23 if (handle && !handle.done()) {
24 handle.resume();
25 }
26 }
27}
std::unordered_map< std::string, std::shared_ptr< Event > > m_named_events
bool remove_event(const std::string &name)
Remove an event by name.
std::string auto_generate_name(const std::shared_ptr< Event > &event) const
Generate automatic name for a event based on its type.
std::vector< std::shared_ptr< Event > > m_events

References auto_generate_name(), m_events, m_named_events, and remove_event().

+ Here is the call graph for this function: