49 void add_processor(
const std::shared_ptr<DataProcessor>& processor,
const std::shared_ptr<SignalSourceContainer>& container,
const std::string& tag =
"");
59 void add_processor_at(
const std::shared_ptr<DataProcessor>& processor,
60 const std::shared_ptr<SignalSourceContainer>& container,
70 void remove_processor(
const std::shared_ptr<DataProcessor>& processor,
const std::shared_ptr<SignalSourceContainer>& container);
79 void process(
const std::shared_ptr<SignalSourceContainer>& container);
89 template <
typename ProcessorType>
90 inline void process_typed(
const 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(
const std::shared_ptr<SignalSourceContainer>& container,
111 const std::function<
bool(
const std::shared_ptr<DataProcessor>&)>& filter);
121 void process_tagged(
const 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.