123456789101112131415161718192021222324252627282930313233 |
- #ifndef MDD_IModule_H
- #define MDD_IModule_H
- #include "IOutput.h"
- #include "IInput.h"
- #include "state.h"
- #include <string>
- #include <vector>
- #include <memory>
- namespace mdd {
- class IOutput;
- class IModule : public IUnique{
- public:
- virtual void updateID() = 0;
- virtual std::vector<std::string> getInputs() = 0;
- virtual std::vector<std::string> getOutputs() = 0;
- virtual std::vector<std::string> getInputIDs() = 0;
- virtual std::vector<std::string> getOutputIDs() = 0;
- virtual std::vector<state> getInputStates() = 0;
- virtual std::vector<state> getOutputStates() = 0;
- virtual std::shared_ptr<IOutput> getOutput(std::string output_id) = 0;
- virtual std::shared_ptr<IInput> getInput(std::string input_id) = 0;
- virtual std::vector <std::shared_ptr<IOutput>> getInputConnections() = 0;
- virtual std::vector <std::vector <std::shared_ptr<IInput>>> getOutputConnections() = 0;
- virtual std::vector <std::shared_ptr<IInput>> getOptimizableInputs() = 0;
- virtual std::vector <std::shared_ptr<IOutput>> getOptimizableOutputs() = 0;
- virtual state update() = 0;
- virtual ~IModule() = default;
- };
- }
- #endif //MDD_IMODULE_H
|