|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
Manages collection of data processors or flexible, composable pipelines. More...
#include <DataProcessingChain.hpp>
Collaboration diagram for MayaFlux::Kakshya::DataProcessingChain:Public Member Functions | |
| DataProcessingChain ()=default | |
| void | add_processor (std::shared_ptr< DataProcessor > processor, std::shared_ptr< SignalSourceContainer > container, const std::string &tag="") |
| Adds a processor to the chain for a specific container. | |
| void | add_processor_at (std::shared_ptr< DataProcessor > processor, std::shared_ptr< SignalSourceContainer > container, size_t position) |
| Adds a processor at a specific position in the chain. | |
| void | remove_processor (std::shared_ptr< DataProcessor > processor, std::shared_ptr< SignalSourceContainer > container) |
| Removes a processor from a container's chain. | |
| void | process (std::shared_ptr< SignalSourceContainer > container) |
| Processes a container with all its associated processors, in sequence. | |
| template<typename ProcessorType > | |
| void | process_typed (std::shared_ptr< SignalSourceContainer > container) |
| Processes a container with processors of a specific type. | |
| void | process_filtered (std::shared_ptr< SignalSourceContainer > container, std::function< bool(std::shared_ptr< DataProcessor >)> filter) |
| Processes a container with processors that match a filter function. | |
| void | process_tagged (std::shared_ptr< SignalSourceContainer > container, const std::string &tag) |
| Processes a container with processors that have a specific tag. | |
Private Attributes | |
| std::unordered_map< std::shared_ptr< SignalSourceContainer >, std::vector< std::shared_ptr< DataProcessor > > > | m_container_processors |
| Maps containers to their associated processors in sequence order. | |
| std::unordered_map< std::shared_ptr< DataProcessor >, std::string > | m_processor_tags |
| Maps processors to their associated tags for categorization and filtering. | |
Manages collection of data processors or flexible, composable pipelines.
DataProcessingChain orchestrates collections of DataProcessor objects, enabling the construction of modular, extensible, and container-specific processing pipelines. Unlike traditional analog "signal chains," this class is designed for digital-first workflows, supporting dynamic, data-driven processing scenarios unconstrained by fixed or linear analog metaphors.
Key features:
This abstraction enables advanced scenarios such as:
DataProcessingChain is foundational for building scalable, maintainable, and future-proof data processing architectures in digital-first, data-driven applications.
Definition at line 37 of file DataProcessingChain.hpp.