49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
#ifndef DOMAIN_CONNECTION_INSTANCE_H
|
|
#define DOMAIN_CONNECTION_INSTANCE_H
|
|
|
|
#include "connection.h"
|
|
#include "instance.h"
|
|
#include "wireinstance.h"
|
|
|
|
|
|
|
|
namespace domain {
|
|
|
|
class ConnectionInstance
|
|
{
|
|
public:
|
|
ComponentInstance *instance;
|
|
Connection connection;
|
|
WireInstance *wire;
|
|
|
|
virtual ~ConnectionInstance() = default;
|
|
|
|
std::vector<InstanceAttribute*> attributes;
|
|
|
|
ConnectionInstance(ComponentInstance *instance, std::vector<InstanceAttribute*> attributes, WireInstance *wire, Connection connection);
|
|
};
|
|
|
|
|
|
class BusConnectionInstance: public ConnectionInstance
|
|
{
|
|
public:
|
|
BusInstance *bus;
|
|
|
|
BusConnectionInstance(ComponentInstance *instance, std::vector<InstanceAttribute*> attributes, BusInstance *bus, WireInstance *wire, Connection connection);
|
|
};
|
|
|
|
|
|
class DirectConnectionInstance: public ConnectionInstance
|
|
{
|
|
public:
|
|
BusInstance *bus;
|
|
ComponentInstance *secondInstance;
|
|
|
|
DirectConnectionInstance(ComponentInstance *instance, ComponentInstance *secondsInstance, std::vector<InstanceAttribute*> attributes, BusInstance *bus, WireInstance *wire, Connection connection);
|
|
};
|
|
|
|
|
|
} // namespace domain
|
|
|
|
#endif // DOMAIN_CONNECTIONINSTANCE_H
|