#pragma once #include "IModule.h" #include "Parameter.h" #include namespace mdd { class IProcessor: public IModule{ public: typedef std::shared_ptr Ptr; virtual std::string addModule(std::shared_ptr module) = 0; virtual void removeModule(std::shared_ptr module) = 0; virtual json addInput(std::shared_ptr input) = 0; virtual json removeInput(std::shared_ptr input) = 0; virtual json addOutput(std::shared_ptr output) = 0; virtual json removeOutput(std::shared_ptr output) = 0; virtual std::vector>& getInputParams() = 0; virtual std::vector>& getOutputParams() = 0; virtual std::vector>& getModules() = 0; virtual size_t getNumModuls() = 0; virtual std::shared_ptr getModule(size_t index) = 0; virtual std::shared_ptr getModule(const json& jid) = 0; virtual bool connect(const std::string& output_id, const std::vector& input_ids) = 0; }; }