MayaFlux 0.4.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 75 of file Fabric.cpp.

76{
77 auto it = m_registrations.find(id);
78 if (it == m_registrations.end()) {
79 return;
80 }
81
82 auto& reg = it->second;
83
84 if (!reg.task_name.empty()) {
85 m_scheduler.cancel_task(reg.task_name);
86 }
87 if (!reg.chain_name.empty()) {
88 m_scheduler.cancel_task(reg.chain_name);
89 }
90 if (!reg.event_name.empty()) {
91 m_event_manager.cancel_event(reg.event_name);
92 }
93 if (reg.spatial_id.has_value()) {
94 m_index->remove(*reg.spatial_id);
95 }
96
97 m_registrations.erase(it);
98}
std::unique_ptr< Kinesis::SpatialIndex3D > m_index
Definition Fabric.hpp:224
Vruta::TaskScheduler & m_scheduler
Definition Fabric.hpp:221
std::unordered_map< uint32_t, Registration > m_registrations
Definition Fabric.hpp:225
Vruta::EventManager & m_event_manager
Definition Fabric.hpp:222
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.
Definition Scheduler.cpp:62

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: