35 , send_buffer_size_(0)
38 , use_multicast_(true)
43 , nak_response_delay_(0, DEFAULT_NAK_RESPONSE_DELAY_USEC)
44 , heartbeat_period_(DEFAULT_HEARTBEAT_PERIOD_SEC)
45 , receive_address_duration_(5)
46 , responsive_mode_(false)
47 , send_delay_(0, 10 * 1000)
49 , multicast_group_address_(7401,
"239.255.0.2")
50 , local_address_(u_short(0),
"0.0.0.0")
52 , ipv6_multicast_group_address_(7401,
"FF03::2")
53 , ipv6_local_address_(u_short(0),
"::")
55 , rtps_relay_only_(false)
56 , use_rtps_relay_(false)
82 advertised_address_s);
83 if (!advertised_address_s.
is_empty()) {
91 ipv6_local_address_s);
92 if (!ipv6_local_address_s.
is_empty()) {
94 ipv6_local_address(addr);
99 ipv6_advertised_address_s);
100 if (!ipv6_advertised_address_s.
is_empty()) {
102 ipv6_advertised_address(addr);
116 if (group_address_s.
rfind(
':') == group_address_s.
npos) {
118 group_address_s +=
ACE_TEXT(
":7401");
144 rtps_relay_address_s);
145 if (!rtps_relay_address_s.
is_empty()) {
155 stun_server_address_s);
156 if (!stun_server_address_s.
is_empty()) {
161 #ifdef OPENDDS_SECURITY 218 if (locators[idx].port == 0) {
226 for (AddrVector::iterator adr_it = addrs.begin(); adr_it != addrs.end(); ++adr_it) {
244 if (locators[idx].port == 0) {
245 locators[idx].port = ipv6_local_address().get_port_number();
248 }
else if (ipv6_local_address().is_any()) {
252 for (AddrVector::iterator adr_it = addrs.begin(); adr_it != addrs.end(); ++adr_it) {
256 locators[idx].port = ipv6_local_address().get_port_number();
271 return locators.length();
277 for (
CORBA::ULong idx = 0, limit = trans_info.length(); idx != limit; ++idx) {
278 if (std::strcmp(trans_info[idx].transport_type,
"rtps_udp") == 0) {
279 return &trans_info[idx].data;
293 rtps_impl->update_locators(remote_id, locators);
304 rtps_impl->get_last_recv_locator(remote_id, locator);
314 rtps_impl->rtps_relay_address_change();
324 rtps_impl->append_transport_statistics(seq);
RcHandle< T > rchandle_from(T *pointer)
TimeDuration heartbeat_period_
RtpsUdpInst(const OPENDDS_STRING &name)
TransportImpl_rch get_or_create_impl()
const char * c_str(void) const
void rtps_relay_address_change()
Base class to hold configuration settings for TransportImpls.
ACE_INET_Addr to_addr() const
void update_locators(const GUID_t &remote_id, const TransportLocatorSeq &locators)
}
const GUID_t GUID_UNKNOWN
Nil value for GUID.
String to_dds_string(unsigned short to_convert)
#define GET_CONFIG_STRING_VALUE(CF, SECT, KEY, VALUE)
sequence< Locator_t > LocatorSeq
sequence< TransportLocator > TransportLocatorSeq
NetworkAddress stun_server_address() const
TransportImpl_rch new_impl()
size_type rfind(char c, size_type pos=npos) const
TimeDuration nak_response_delay_
OpenDDS_Dcps_Export void address_to_locator(Locator_t &locator, const ACE_INET_Addr &addr)
static size_type const npos
void append_transport_statistics(TransportStatisticsSequence &seq)
NetworkAddress local_address() const
ACE_INT32 rcv_buffer_size_
bool is_empty(void) const
void get_last_recv_locator(const GUID_t &, TransportLocator &)
ACE_UINT16 get_port_number() const
sequence< TransportStatistics > TransportStatisticsSequence
NetworkAddress rtps_relay_address() const
NetworkAddress advertised_address() const
#define GET_CONFIG_VALUE(CF, SECT, KEY, VALUE, TYPE)
#define GET_CONFIG_TSTRING_VALUE(CF, SECT, KEY, VALUE)
void get_interface_addrs(OPENDDS_VECTOR(ACE_INET_Addr)&addrs)
NetworkAddress multicast_group_address() const
Seq::size_type grow(Seq &seq)
ACE_INT32 send_buffer_size_
virtual OPENDDS_STRING dump_to_str() const
Diagnostic aid.
#define ACE_DEFAULT_MAX_SOCKET_BUFSIZ
OPENDDS_STRING multicast_interface_
#define GET_CONFIG_TIME_VALUE(CF, SECT, KEY, VALUE)
virtual int load(ACE_Configuration_Heap &cf, ACE_Configuration_Section_Key §)
TransportImpl_rch get_impl()
String str(unsigned decimal_places=3, bool just_sec=false) const
const String & str() const
RcHandle< T > static_rchandle_cast(const RcHandle< U > &h)
virtual size_t populate_locator(OpenDDS::DCPS::TransportLocator &trans_info, ConnectionInfoFlags flags) const
Populate a transport locator sequence. Return the number of "locators.".
Adapt the TransportReceiveStrategy for RTPS's "sample" (submessage) Header.
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
virtual int load(ACE_Configuration_Heap &cf, ACE_Configuration_Section_Key §)
string transport_type
The transport type (e.g. tcp or udp)
static OPENDDS_STRING formatNameForDump(const char *name)
const TransportBLOB * get_blob(const OpenDDS::DCPS::TransportLocatorSeq &trans_info) const
size_t anticipated_fragments_
#define ACE_ERROR_RETURN(X, Y)
typedef OPENDDS_VECTOR(ActionConnectionRecord) ConnectionRecords
#define TheServiceParticipant
DDS::OctetSeq TransportBLOB
The Internal API and Implementation of OpenDDS.
void locators_to_blob(const DCPS::LocatorSeq &locators, DCPS::TransportBLOB &blob)
NetworkAddress multicast_group_address_
static const ConnectionInfoFlags CONNINFO_MULTICAST
virtual OPENDDS_STRING dump_to_str() const
static const ConnectionInfoFlags CONNINFO_UNICAST
size_t ConnectionInfoFlags