#ifndef MDD_IModule_H #define MDD_IModule_H #include "IOutput.h" #include "IInput.h" #include "IManager.h" #include "state.h" #include #include #include namespace mdd { class IModule : public IUnique , public IManager { public: typedef std::shared_ptr Ptr; virtual size_t getNumInputs() = 0; virtual size_t getNumOutputs() = 0; //"Processor1/Math1/Value1" //Proc2/MAth1;Value1 //Proc2->get(MAth1;Value1) //MAth1;Value1 //MAth1->get(Value1) //Value1 virtual std::shared_ptr getInput(const std::string& id) = 0; virtual std::shared_ptr getInput(size_t index) = 0; virtual std::shared_ptr getOutput(const std::string& id) = 0; virtual std::shared_ptr getOutput(size_t index) = 0; virtual std::vector> getOptimizableInputs() = 0; virtual std::vector> getOptimizableOutputs() = 0; //virtual std::vector >> getConnectionsOf(Input) = 0; //virtual std::vector > getOptimizable() = 0; virtual state update() = 0; virtual void disconnect() = 0; virtual ~IModule() = default; }; } #endif