#ifndef DOMAIN_PIN_H #define DOMAIN_PIN_H #include "display.h" #include "value.h" #include namespace domain { class PinConnection { public: enum ConnectionType { REQUIRED, OPTIONAL }; private: std::string message; ConnectionType type; public: PinConnection(std::string message, ConnectionType type); ConnectionType getType(); std::string getMessage(); }; class Pin { public: enum PinType { IN_OUT, IN, OUT }; private: std::string name; PinType type; std::string tooltip; PinConnection connection; domain::ui::Pin displayPin; std::optional> wires; public: Pin(std::string name, PinType type, std::string tooltip, PinConnection connection, domain::ui::Pin pin, std::optional> wires); std::string &getName(); PinType getType(); std::string getTooltip(); ui::Pin &getDisplayPin(); PinConnection &getConnection(); std::optional> &getWires(); }; } // namespace domain #endif // DOMAIN_PIN_H