bool MulticastTransport::connection_info_i(TransportLocator& info) const { NetworkAddress network_address(this->config_i_->group_address_); ACE_OutputCDR cdr; cdr << network_address; const CORBA::ULong len = static_cast<CORBA::ULong>(cdr.total_length()); char* buffer = const_cast<char*>(cdr.buffer()); // safe info.transport_type = "multicast"; info.data = TransportBLOB(len, len, reinterpret_cast<CORBA::Octet*>(buffer)); return true; }
size_t UdpInst::populate_locator(OpenDDS::DCPS::TransportLocator& info) const { if (this->local_address_ != ACE_INET_Addr()) { NetworkAddress network_address(this->local_address_, this->local_address_.is_any()); ACE_OutputCDR cdr; cdr << network_address; const CORBA::ULong len = static_cast<CORBA::ULong>(cdr.total_length()); char* buffer = const_cast<char*>(cdr.buffer()); // safe info.transport_type = "udp"; info.data = TransportBLOB(len, len, reinterpret_cast<CORBA::Octet*>(buffer)); return 1; } else { return 0; } }
bool TcpTransport::connection_info_i(TransportLocator& local_info) const { DBG_ENTRY_LVL("TcpTransport", "connection_info_i", 6); VDBG_LVL((LM_DEBUG, "(%P|%t) TcpTransport public address str %C\n", this->tcp_config_->get_public_address().c_str()), 2); // Get the public address string from the inst (usually the local address) NetworkAddress network_order_address(this->tcp_config_->get_public_address()); ACE_OutputCDR cdr; cdr << network_order_address; const CORBA::ULong len = static_cast<CORBA::ULong>(cdr.total_length()); char* buffer = const_cast<char*>(cdr.buffer()); // safe local_info.transport_type = "tcp"; local_info.data = TransportBLOB(len, len, reinterpret_cast<CORBA::Octet*>(buffer)); return true; }