8 #ifndef OPENDDS_DCPS_TRANSPORT_RTPS_UDP_RTPSUDPINST_H 9 #define OPENDDS_DCPS_TRANSPORT_RTPS_UDP_RTPSUDPINST_H 27 class RtpsUdpTransport;
28 class TransportReceiveListener;
34 static const suseconds_t DEFAULT_NAK_RESPONSE_DELAY_USEC = 200000;
35 static const time_t DEFAULT_HEARTBEAT_PERIOD_SEC = 1;
69 multicast_group_address_ = addr;
71 ACE_ERROR((
LM_ERROR,
ACE_TEXT(
"(%P|%t) ERROR: RtpsUdpInst::multicast_group_address set failed because address family is not AF_INET\n")));
79 local_address_ = addr;
81 ACE_ERROR((
LM_ERROR,
ACE_TEXT(
"(%P|%t) ERROR: RtpsUdpInst::local_address set failed because address family is not AF_INET\n")));
89 advertised_address_ = addr;
91 ACE_ERROR((
LM_ERROR,
ACE_TEXT(
"(%P|%t) ERROR: RtpsUdpInst::advertised_address set failed because address family is not AF_INET\n")));
96 NetworkAddress ipv6_multicast_group_address()
const {
return ipv6_multicast_group_address_; }
100 ipv6_multicast_group_address_ = addr;
102 ACE_ERROR((
LM_ERROR,
ACE_TEXT(
"(%P|%t) ERROR: RtpsUdpInst::ipv6_multicast_group_address set failed because address family is not AF_INET6\n")));
106 NetworkAddress ipv6_local_address()
const {
return ipv6_local_address_; }
110 ipv6_local_address_ = addr;
112 ACE_ERROR((
LM_ERROR,
ACE_TEXT(
"(%P|%t) ERROR: RtpsUdpInst::ipv6_local_address set failed because address family is not AF_INET6\n")));
116 NetworkAddress ipv6_advertised_address()
const {
return ipv6_advertised_address_; }
120 ipv6_advertised_address_ = addr;
122 ACE_ERROR((
LM_ERROR,
ACE_TEXT(
"(%P|%t) ERROR: RtpsUdpInst::ipv6_advertised_address set failed because address family is not AF_INET6\n")));
129 void rtps_relay_only(
bool flag);
130 bool rtps_relay_only()
const;
131 void use_rtps_relay(
bool flag);
132 bool use_rtps_relay()
const;
135 void use_ice(
bool flag);
136 bool use_ice()
const;
141 void update_locators(
const GUID_t& remote_id,
144 void get_last_recv_locator(
const GUID_t& ,
147 void rtps_relay_address_change();
152 template <
typename T,
typename U>
180 inline void RtpsUdpInst::rtps_relay_only(
bool flag)
183 rtps_relay_only_ = flag;
185 ACE_DEBUG((
LM_INFO,
"(%P|%t) RtpsUdpInst::rtps_relay_only is now %d\n", rtps_relay_only_));
189 inline bool RtpsUdpInst::rtps_relay_only()
const 192 return rtps_relay_only_;
195 inline void RtpsUdpInst::use_rtps_relay(
bool flag)
198 use_rtps_relay_ = flag;
200 ACE_DEBUG((
LM_INFO,
"(%P|%t) RtpsUdpInst::use_rtps_relay is now %d\n", use_rtps_relay_));
204 inline bool RtpsUdpInst::use_rtps_relay()
const 207 return use_rtps_relay_;
213 rtps_relay_address_ = address;
219 return rtps_relay_address_;
222 inline void RtpsUdpInst::use_ice(
bool flag)
231 inline bool RtpsUdpInst::use_ice()
const 240 stun_server_address_ = address;
246 return stun_server_address_;
TimeDuration heartbeat_period_
#define ACE_GUARD(MUTEX, OBJ, LOCK)
ACE_SYNCH_MUTEX config_lock_
ACE_INT16 get_type() const
void advertised_address(const NetworkAddress &addr)
Base class to hold configuration settings for TransportImpls.
NetworkAddress rtps_relay_address_
NetworkAddress stun_server_address_
sequence< TransportLocator > TransportLocatorSeq
RcHandle< TransportReceiveListener > TransportReceiveListener_rch
NetworkAddress local_address_
TransportReceiveListener_rch opendds_discovery_default_listener_
TimeDuration nak_response_delay_
NetworkAddress local_address() const
ACE_INT32 rcv_buffer_size_
bool is_reliable() const
Does the transport as configured support RELIABLE_RELIABILITY_QOS?
sequence< TransportStatistics > TransportStatisticsSequence
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)
NetworkAddress advertised_address() const
TimeDuration receive_address_duration_
NetworkAddress multicast_group_address() const
GUID_t opendds_discovery_guid_
ACE_INT32 send_buffer_size_
OPENDDS_STRING multicast_interface_
void local_address(const NetworkAddress &addr)
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
NetworkAddress advertised_address_
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
void multicast_group_address(const NetworkAddress &addr)
size_t anticipated_fragments_
bool requires_cdr_encapsulation() const
Does the transport require a CDR-encapsulated data payload?
DDS::OctetSeq TransportBLOB
The Internal API and Implementation of OpenDDS.
NetworkAddress multicast_group_address_
#define OpenDDS_Rtps_Udp_Export
size_t ConnectionInfoFlags