IProcessor.h 888 B

1234567891011121314151617181920212223242526
  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 std::vector<std::shared_ptr<Parameter>>& getInputParams() = 0;
  13. virtual std::vector<std::shared_ptr<Parameter>>& getOutputParams() = 0;
  14. virtual std::vector<std::shared_ptr<IModule >>& getModules() = 0;
  15. virtual size_t getNumModuls() = 0;
  16. virtual std::shared_ptr<IModule> getModule(size_t index) = 0;
  17. virtual std::shared_ptr<IModule> getModule(const std::string& id) = 0;
  18. virtual bool connect(const std::string& output_id, const std::vector<std::string>& input_ids) = 0;
  19. };
  20. }