Output.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef MDD_OUTPUT_H
  2. #define MDD_OUTPUT_H
  3. #include "IOutput.h"
  4. #include "IInput.h"
  5. #include "IModule.h"
  6. namespace mdd {
  7. class Output : public IOutput{
  8. private:
  9. state _state;
  10. std::vector<double> _value;
  11. std::string _prefix;
  12. std::string _type;
  13. int _appendix;
  14. std::vector<std::shared_ptr<IInput>> _connections;
  15. bool _optimizable;
  16. protected:
  17. public:
  18. Output(const std::string& type, int appendix, const std::vector<double>& initial);
  19. const std::vector<double>& getValue() override;
  20. std::vector<double>& setValue() override;
  21. state setValue(const std::vector<double>& val) override;
  22. bool isOptimizable();
  23. void setOptimizability(bool state);
  24. state getState() override;
  25. void resetState() override;
  26. std::string setType(std::string type) override;
  27. std::string getType() override;
  28. std::string getID() override;
  29. std::string setPrefix(std::string prefix) override;
  30. std::string setAppendix(int appendix) override;
  31. int addConnection(std::shared_ptr<IInput> input) override;
  32. int removeConnection(std::shared_ptr<IInput> input) override;
  33. bool connect(std::shared_ptr<IInput> input) override;
  34. std::vector<std::shared_ptr<IInput>> getConnections() override;
  35. };
  36. }
  37. #endif