IProcessor.h 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "IModule.h"
  3. #include "Parameter.h"
  4. #include <vector>
  5. namespace mdd
  6. {
  7. class IProcessor: public IModule{
  8. public:
  9. typedef std::shared_ptr<IProcessor> Ptr;
  10. virtual std::string addModule(std::shared_ptr<IModule> module) = 0;
  11. virtual void removeModule(std::shared_ptr<IModule> module) = 0;
  12. virtual json addInput(std::shared_ptr<IInput> input) = 0;
  13. virtual json removeInput(std::shared_ptr<IInput> input) = 0;
  14. virtual json addOutput(std::shared_ptr<IOutput> output) = 0;
  15. virtual json removeOutput(std::shared_ptr<IOutput> output) = 0;
  16. virtual std::vector<std::shared_ptr<Parameter>>& getInputParams() = 0;
  17. virtual std::vector<std::shared_ptr<Parameter>>& getOutputParams() = 0;
  18. virtual std::vector<std::shared_ptr<IModule >>& getModules() = 0;
  19. virtual size_t getNumModuls() = 0;
  20. virtual std::shared_ptr<IModule> getModule(size_t index) = 0;
  21. virtual std::shared_ptr<IModule> getModule(const json& jid) = 0;
  22. virtual bool connect(const std::string& output_id, const std::vector<std::string>& input_ids) = 0;
  23. };
  24. }