47 lines
1.1 KiB
C
47 lines
1.1 KiB
C
|
#ifndef DOMAIN_CONNECTIONINSTANCE_H
|
||
|
#define DOMAIN_CONNECTIONINSTANCE_H
|
||
|
|
||
|
#include "connection.h"
|
||
|
#include "instance.h"
|
||
|
#include "wireinstance.h"
|
||
|
|
||
|
|
||
|
|
||
|
namespace domain {
|
||
|
|
||
|
class ConnectionInstance
|
||
|
{
|
||
|
public:
|
||
|
ComponentInstance *instance;
|
||
|
Connection connection;
|
||
|
WireInstance *wire;
|
||
|
|
||
|
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
|