#ifndef MDD_INPUT_H #define MDD_INPUT_H #include #include #include "IInput.h" #include "IOutput.h" #include #include "IUnique.h" namespace mdd { class Input : public IInput{ private: std::string _prefix; std::string _type; int _appendix; std::vector _value; //std::function _verification; std::shared_ptr _output; bool _optimizable; limits _limit; protected: public: Input(const std::string &type, int appendix, const std::vector& default_value); //const std::function &verification = [](const json&) { return true; } std::string setType(const std::string& type) override; std::string getType() override; std::string getID() override; std::string setPrefix(const std::string& prefix) override; std::string setAppendix(int appendix) override; state getState() override; void resetState() override; const std::vector& getValue() override; std::vector& setValue() override; state setValue(const std::vector& val) override; bool isOptimizable() override; void setOptimizability(bool state) override; const limits& getLimits() override; limits& setLimits() override; std::shared_ptr getConnection() override; //bool verify(const json & data) override; int addConnection(std::shared_ptr output) override; int removeConnection(std::shared_ptr output) override; bool connect(std::shared_ptr output) override; }; } #endif //MDD_INPUT_H