#ifndef DOMAIN_CONNECTION_INSTANCE_H #define DOMAIN_CONNECTION_INSTANCE_H #include "connection.h" #include "instance.h" namespace domain { class ConnectionInstance { public: ComponentInstance *instance; Connection connection; virtual ~ConnectionInstance() = default; std::vector attributes; std::pair start; std::pair end; ConnectionInstance(ComponentInstance *instance, std::vector attributes, Connection connection); InstanceAttribute getAttribute(string attribute); }; class BusConnectionInstance : public ConnectionInstance { public: BusInstance *bus; BusConnectionInstance(ComponentInstance *instance, std::vector attributes, BusInstance *bus, Connection connection); }; class DirectConnectionInstance : public ConnectionInstance { public: BusInstance *bus; ComponentInstance *secondInstance; DirectConnectionInstance(ComponentInstance *instance, ComponentInstance *secondsInstance, std::vector attributes, BusInstance *bus, Connection connection); int getSelected(ConnectionComponent connection); }; } // namespace domain #endif // DOMAIN_CONNECTIONINSTANCE_H