49 void add_processor(std::shared_ptr<DataProcessor> processor, std::shared_ptr<SignalSourceContainer> container,
const std::string& tag =
"");
59 void add_processor_at(std::shared_ptr<DataProcessor> processor,
60 std::shared_ptr<SignalSourceContainer> container,
70 void remove_processor(std::shared_ptr<DataProcessor> processor, std::shared_ptr<SignalSourceContainer> container);
79 void process(std::shared_ptr<SignalSourceContainer> container);
89 template <
typename ProcessorType>
90 inline void process_typed(std::shared_ptr<SignalSourceContainer> container)
92 auto it = m_container_processors.find(container);
93 if (it != m_container_processors.end()) {
94 for (
auto& processor : it->second) {
95 if (
auto typed_proc = std::dynamic_pointer_cast<ProcessorType>(processor)) {
96 typed_proc->process(container);
110 void process_filtered(std::shared_ptr<SignalSourceContainer> container,
111 std::function<
bool(std::shared_ptr<DataProcessor>)> filter);
121 void process_tagged(std::shared_ptr<SignalSourceContainer> container,
const std::string& tag);
129 std::unordered_map<std::shared_ptr<SignalSourceContainer>,
130 std::vector<std::shared_ptr<DataProcessor>>>
void add_processor(const std::shared_ptr< Buffers::BufferProcessor > &processor, const std::shared_ptr< Buffers::Buffer > &buffer, Buffers::ProcessingToken token)
Adds a processor to a specific buffer.