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

◆ remove()

void MayaFlux::Nexus::Fabric::remove ( uint32_t  id)

Remove a registered object by id, cancelling any associated tasks.

Parameters
idStable id assigned at registration.

Definition at line 76 of file Fabric.cpp.

77{
78 auto it = m_registrations.find(id);
79 if (it == m_registrations.end()) {
80 return;
81 }
82
83 auto& reg = it->second;
84
85 if (!reg.task_name.empty()) {
86 m_scheduler.cancel_task(reg.task_name);
87 }
88 if (!reg.chain_name.empty()) {
89 m_scheduler.cancel_task(reg.chain_name);
90 }
91 if (!reg.event_name.empty()) {
92 m_event_manager.cancel_event(reg.event_name);
93 }
94 if (reg.spatial_id.has_value()) {
95 m_index->remove(*reg.spatial_id);
96 }
97
98 m_registrations.erase(it);
99}
std::unique_ptr< Kinesis::SpatialIndex3D > m_index
Definition Fabric.hpp:292
Vruta::TaskScheduler & m_scheduler
Definition Fabric.hpp:289
std::unordered_map< uint32_t, Registration > m_registrations
Definition Fabric.hpp:293
Vruta::EventManager & m_event_manager
Definition Fabric.hpp:290
bool cancel_event(const std::shared_ptr< Event > &event)
Cancels and removes a event from the manager.
bool cancel_task(const std::shared_ptr< Routine > &routine)
Cancels and removes a task from the scheduler.

References MayaFlux::Vruta::EventManager::cancel_event(), MayaFlux::Vruta::TaskScheduler::cancel_task(), m_event_manager, m_index, m_registrations, and m_scheduler.

+ Here is the call graph for this function: