void DataPool::Connection::removePort(RTT::base::PortInterface *port) { RTT::base::InputPortInterface *inputPort = dynamic_cast<RTT::base::InputPortInterface *>(port); RTT::base::OutputPortInterface *outputPort = dynamic_cast<RTT::base::OutputPortInterface *>(port); if (inputPort) { this->internalOutputPort->disconnect(inputPort); inputPort->disconnect(); readers.erase(inputPort); } if (outputPort) { this->internalInputPort->disconnect(outputPort); outputPort->disconnect(); writers.erase(outputPort); } }
~OutputProxyPort() { deleteReader(); port->disconnect(); }