#ifndef MDD_ModuleBase_H
#define MDD_ModuleBase_H
#include "Input.h"
#include "IModule.h"
namespace mdd {
class ModuleBase : public IModule{
private:
std::string _type;
std::vector _inputs;
std::vector> _outputs;
public:
int addInput(const std::string& type, const json& value,
const std::function& verification = [](
const json&) { return true; });
void setType(std:: string type);
std::string getType() override;
json& setInputDefaultValue(int handle) override;
const json& getInputValue(int handle) override;
bool connectInput(int handle, std::shared_ptr output) override;
std::vector getInputs() override;
std::vector getOutputs() override;
std::shared_ptr getOutput(int handle) override;
int addOutput(const std::string& type, const json& initial);
json &setOutputValue(int handle);
};
}
#endif //MDD_BASEMODULE_H