#ifndef MDD_PROCESSORBASE_H #define MDD_PROCESSORBASE_H #include #include "Input.h" #include "IProcessor.h" #include "HandlerModule.h" namespace mdd { class ProcessorBase : public IProcessor{ private: std::string _type; //std::vector _processor_inputs; //std::vector> _processor_outputs; std::vector _module_inputs; std::vector _module_outputs; std::vector> _modules; public: void setType(std:: string type); std::string getType() override; int addModule(std::shared_ptr module) override ; //int addInput(const std::string& type, const json& value, // const std::function& verification = []( // const json&) { return true; }); int addInput(int moduleHandler, int inputHandler); int addOutput(int moduleHandler, int outputHandler); //int addOutput(const std::string& type, const json& initial); json& setInputDefaultValue(int handle) override; //json& setOutputValue(int handle); const json& getInputValue(int handle) override; bool connectInput(int handle, std::shared_ptr output) override; std::vector getInputs() override; std::vector getOutputs() override; std::shared_ptr getOutput(int handle) override; std::vector getModules() override; std::shared_ptr getModule(int handle) override; }; } #endif