A type-erased container for any copyable value.
Interface defining the structure and behavior of a processing pipeline.
virtual ~IPipeline()=default
virtual void ImportSettingsFromFile(const std::string &filePath)=0
Loads the settings of the pipeline and its modules from a file.
virtual std::string ExportSettingsToString() const =0
Returns the current settings of the pipeline and its modules as a string.
virtual peak::common::Any Process(const peak::common::Any &input) const =0
Processes the input through all pipeline modules and returns the result.
virtual void ResetToDefault()=0
Resets the pipeline and its modules to their default state.
virtual peak::common::Any operator<<(const peak::common::Any &input)=0
Convenience operator for processing input using the pipeline.
virtual void ImportSettingsFromString(const std::string &settings)=0
Loads settings for the pipeline and its modules from a string.
virtual const char * GetType() const =0
Returns the type identifier of the pipeline.
virtual void ExportSettingsToFile(const std::string &filePath) const =0
Saves the current settings of the pipeline and its modules to a file.
#define PEAK_COMMON_NO_DISCARD
Compatability macro for the nodiscard attribute.