73,78d72
< bool
< BaseMasterPort::isConnected() const
< {
< return _baseSlavePort != NULL;
< }
<
98,103d91
< bool
< BaseSlavePort::isConnected() const
< {
< return _baseMasterPort != NULL;
< }
<
117c105
< MasterPort::bind(BaseSlavePort& slave_port)
---
> MasterPort::bind(Port &peer)
118a107,111
> auto *slave_port = dynamic_cast<SlavePort *>(&peer);
> if (!slave_port) {
> fatal("Attempt to bind port %s to non-slave port %s.",
> name(), peer.name());
> }
120c113
< _baseSlavePort = &slave_port;
---
> _baseSlavePort = slave_port;
122,134c115,119
< // also attempt to base the slave to the appropriate type
< SlavePort* cast_slave_port = dynamic_cast<SlavePort*>(&slave_port);
<
< // if this port is compatible, then proceed with the binding
< if (cast_slave_port != NULL) {
< // master port keeps track of the slave port
< _slavePort = cast_slave_port;
< // slave port also keeps track of master port
< _slavePort->bind(*this);
< } else {
< fatal("Master port %s cannot bind to %s\n", name(),
< slave_port.name());
< }
---
> // master port keeps track of the slave port
> _slavePort = slave_port;
> _connected = true;
> // slave port also keeps track of master port
> _slavePort->slaveBind(*this);
143c128
< _slavePort->unbind();
---
> _slavePort->slaveUnbind();
144a130
> _connected = false;
221c207
< SlavePort::unbind()
---
> SlavePort::slaveUnbind()
224a211
> _connected = false;
228c215
< SlavePort::bind(MasterPort& master_port)
---
> SlavePort::slaveBind(MasterPort& master_port)
231a219
> _connected = true;