Output.h 1.4 KB

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