#ifndef MDD_OUTPUT_H #define MDD_OUTPUT_H #include "IOutput.h" #include "IModule.h" namespace mdd { class Output : public IOutput{ private: state _state; std::vector _value; std::string _type; int _appendix; std::vector> _connections; bool _optimizable; IModule* _parent; public: Output(IModule* parent, const std::string& type, int appendix, const std::vector& initial); const std::vector& getValue() override; std::vector& setValue() override; state setValue(const std::vector& val) override; bool isOptimizable(); void setOptimizability(bool state); state getState() override; void resetState() override; std::string setType(const std::string& type) override; std::string getType() override; std::string getID() override; std::string setAppendix(int appendix) override; int getAppendix() override; std::string getParentID() override; int addConnection(std::shared_ptr input) override; int removeConnection(std::shared_ptr input) override; bool connect(std::shared_ptr input) override; std::vector> getConnections() override; void disconnect() override; }; } #endif