28#include <unordered_map>
52 using CreatorFunc = std::function<std::unique_ptr<IPipelineExecutor>()>;
110 [[nodiscard]]
static std::unique_ptr<IPipelineExecutor>
build(
PipelineType type);
129 static std::unordered_map<PipelineType, CreatorFunc>& getRegistry();
Static registry for creating IPipelineExecutor instances based on type.
PipelineBuilder(const PipelineBuilder &)=delete
Deleted copy constructor.
PipelineBuilder(PipelineBuilder &&)=delete
Deleted move constructor.
std::function< std::unique_ptr< IPipelineExecutor >()> CreatorFunc
Definition of the creator function signature.
static void registerCreator(PipelineType type, CreatorFunc creator)
Registers a creator function for a specific pipeline type.
~PipelineBuilder()=delete
Deleted destructor.
PipelineBuilder & operator=(PipelineBuilder &&)=delete
Deleted move assignment operator.
PipelineBuilder()=delete
Deleted default constructor.
PipelineBuilder & operator=(const PipelineBuilder &)=delete
Deleted copy assignment operator.
static std::unique_ptr< IPipelineExecutor > build(PipelineType type)
Retrieves an instance of the executor for the specified type.
Abstract interface for executing a compiled image processing pipeline.
PipelineType
Identifies the specific technology or strategy used for image processing.
Manages the lifecycle of a single IWorkingImage instance.
Enumeration defining supported pipeline types.