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

◆ remove_processor_direct()

void MayaFlux::Kakshya::DataProcessingChain::remove_processor_direct ( const std::shared_ptr< DataProcessor > &  processor,
const std::shared_ptr< SignalSourceContainer > &  container 
)
private

Performs immediate removal of a processor from the chain.

Parameters
processorThe processor to remove.
containerThe container whose chain is modified.

Definition at line 45 of file DataProcessingChain.cpp.

48{
49 auto it = m_container_processors.find(container);
50 if (it == m_container_processors.end()) {
51 return;
52 }
53
54 auto& processors = it->second;
55 auto proc_it = std::ranges::find(processors, processor);
56
57 if (proc_it != processors.end()) {
58 processor->on_detach(container);
59 processors.erase(proc_it);
60 m_processor_tags.erase(processor);
61
62 if (processors.empty()) {
63 m_container_processors.erase(it);
64 }
65 }
66}
std::unordered_map< std::shared_ptr< SignalSourceContainer >, std::vector< std::shared_ptr< DataProcessor > > > m_container_processors
Maps each container to its ordered processor sequence.
std::unordered_map< std::shared_ptr< DataProcessor >, std::string > m_processor_tags
Maps processors to their optional tag strings.

References m_container_processors, and m_processor_tags.

Referenced by drain_pending_removals(), and remove_processor().

+ Here is the caller graph for this function: