#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 _prefix; std::string _type; int _appendix; 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) override; std::string getType() override; std::string addModule(std::shared_ptr module) override ; std::string addProcesorInput(const std::string& type, int const json& value, const std::function& verification = []( const json&) { return true; }); std::string addModuleInput(std::string moduleHandler, std::string inputHandler); std::string addModuleOutput(std::string moduleHandler, std::string outputHandler); std::string addProcessorOutput(const std::string& type, const json& initial); json& setInputDefaultValue(std::string input_id) override; json& setOutputValue(int handle); const json& getInputValue(int handle) override; bool connectInput(std::string input_id, std::shared_ptr output) override; std::vector getInputs() override; std::vector getOutputs() override; std::shared_ptr getOutput(std::string output_id) override; std::vector getModules() override; std::shared_ptr getModule(std::string module_id) override; }; } #endif