ModuleBase.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #ifndef MDD_ModuleBase_H
  2. #define MDD_ModuleBase_H
  3. #include "Input.h"
  4. #include "Output.h"
  5. #include "IModule.h"
  6. #include "Generator.h"
  7. namespace mdd {
  8. class ModuleBase : public IModule{
  9. private:
  10. std::string _prefix = "";
  11. std::string _type = "";
  12. std::string _base_config = "";
  13. int _appendix = 0;
  14. std::vector<std::shared_ptr<Input>> _inputs;
  15. std::vector<std::shared_ptr<Output>> _outputs;
  16. protected:
  17. ModuleBase(const std::string& base_config = "{}");
  18. virtual bool configure(const std::string& config) {return true;};
  19. virtual std::string getBaseConfiguration();
  20. std::shared_ptr<IOutput> getOutput(int handle);
  21. std::shared_ptr<IInput> getInput(int handle);
  22. int addInput(const std::string& type, const std::vector<double>& value);
  23. int addOutput(const std::string& type, const std::vector<double>& initial);
  24. int pop_backInput();
  25. int pop_backOutput();
  26. int clearInput();
  27. int clearOutput();
  28. int eraseInput(int index);
  29. int eraseOutput(int index);
  30. public:
  31. std::vector<std::string> getInputs() override;
  32. std::vector<std::string> getInputIDs() override;
  33. std::vector<std::string> getOutputs() override;
  34. std::vector<std::string> getOutputIDs() override;
  35. std::vector<state> getInputStates() override;
  36. std::vector<state> getOutputStates() override;
  37. std::vector<std::shared_ptr<IOutput>> getInputConnections() override;
  38. std::vector <std::vector <std::shared_ptr<IInput>>> getOutputConnections() override;
  39. std::vector <std::shared_ptr<IInput>> getOptimizableInputs() override;
  40. std::vector <std::shared_ptr<IOutput>> getOptimizableOutputs() override;
  41. std::shared_ptr<IOutput> getOutput(const std::string& output_id) override;
  42. std::shared_ptr<IInput> getInput(const std::string& input_id) override;
  43. std::string setType(const std::string& type) override;
  44. std::string getType() override;
  45. std::string getID() override;
  46. std::string setPrefix(const std::string& prefix) override;
  47. std::string setAppendix(int appendix) override;
  48. void updateID() override ;
  49. };
  50. }
  51. #endif //MDD_BASEMODULE_H