IOptimizer.h 907 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef IOPTIMIZER_H
  2. #define IOPTIMIZER_H
  3. #include "json.hpp"
  4. #include <IModule.h>
  5. namespace mdd {
  6. class IOptimizer {
  7. public:
  8. virtual bool connect(std::shared_ptr<IModule> module) = 0;
  9. /*
  10. limit{
  11. ("min": []
  12. "max": []
  13. ("increment": []
  14. or
  15. "rule": string))
  16. nor
  17. "elements": [[],[],[]]
  18. }
  19. */
  20. virtual bool addModifier(std::string input_id, const json& limit) = 0;
  21. virtual bool addReader(std::string output_id) = 0;
  22. /*
  23. limit{
  24. ("min": []
  25. "max": []
  26. ("increment": []
  27. or
  28. "rule": string))
  29. nor
  30. "elements": [[],[],[]]
  31. }
  32. */
  33. virtual bool changeModifier(std::string input_id, const json& limit) = 0;
  34. virtual void removeModifier(std::string input_id) = 0;
  35. virtual void removeReader(std::string output_id) = 0;
  36. virtual bool setEvaluation(std::string func) = 0;
  37. virtual state update() = 0;
  38. };
  39. }
  40. #endif // !IOPTIMIZER_H