OpenDDS  Snapshot(2023/04/28-20:55)
Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
OpenDDS::RTPS::RtpsDiscovery Class Reference

Discovery Strategy class that implements RTPS discovery. More...

#include <RtpsDiscovery.h>

Inheritance diagram for OpenDDS::RTPS::RtpsDiscovery:
Inheritance graph
[legend]
Collaboration diagram for OpenDDS::RTPS::RtpsDiscovery:
Collaboration graph
[legend]

Classes

class  Config
 
class  StaticInitializer
 

Public Types

typedef RtpsDiscoveryConfig::AddrVec AddrVec
 
- Public Types inherited from OpenDDS::DCPS::Discovery
typedef OPENDDS_STRING RepoKey
 

Public Member Functions

 RtpsDiscovery (const RepoKey &key)
 
 ~RtpsDiscovery ()
 
virtual OpenDDS::DCPS::GUID_t generate_participant_guid ()
 
virtual OpenDDS::DCPS::AddDomainStatus add_domain_participant (DDS::DomainId_t domain, const DDS::DomainParticipantQos &qos, XTypes::TypeLookupService_rch tls)
 
virtual OpenDDS::DCPS::AddDomainStatus add_domain_participant_secure (DDS::DomainId_t domain, const DDS::DomainParticipantQos &qos, XTypes::TypeLookupService_rch tls, const OpenDDS::DCPS::GUID_t &guid, DDS::Security::IdentityHandle id, DDS::Security::PermissionsHandle perm, DDS::Security::ParticipantCryptoHandle part_crypto) OPENDDS_GCC_PRE53_DISABLE_OPTIMIZATION
 
virtual bool supports_liveliness () const
 
virtual void signal_liveliness (const DDS::DomainId_t domain_id, const OpenDDS::DCPS::GUID_t &part_id, DDS::LivelinessQosPolicyKind kind)
 
DCPS::TimeDuration resend_period () const
 
void resend_period (const DCPS::TimeDuration &period)
 
DCPS::TimeDuration lease_duration () const
 
void lease_duration (const DCPS::TimeDuration &period)
 
DCPS::TimeDuration lease_extension () const
 
void lease_extension (const DCPS::TimeDuration &period)
 
u_short pb () const
 
void pb (u_short port_base)
 
u_short dg () const
 
void dg (u_short domain_gain)
 
u_short pg () const
 
void pg (u_short participant_gain)
 
u_short d0 () const
 
void d0 (u_short offset_zero)
 
u_short d1 () const
 
void d1 (u_short offset_one)
 
u_short dx () const
 
void dx (u_short offset_two)
 
unsigned char ttl () const
 
void ttl (unsigned char time_to_live)
 
ACE_INET_Addr sedp_local_address () const
 
void sedp_local_address (const ACE_INET_Addr &mi)
 
ACE_INET_Addr spdp_local_address () const
 
void spdp_local_address (const ACE_INET_Addr &mi)
 
bool sedp_multicast () const
 
void sedp_multicast (bool sm)
 
OPENDDS_STRING multicast_interface () const
 
void multicast_interface (const OPENDDS_STRING &mi)
 
ACE_INET_Addr default_multicast_group () const
 
void default_multicast_group (const ACE_INET_Addr &group)
 
AddrVec spdp_send_addrs () const
 
void spdp_send_addrs (const AddrVec &addrs)
 
OPENDDS_STRING guid_interface () const
 
void guid_interface (const OPENDDS_STRING &gi)
 
DCPS::TimeDuration max_auth_time () const
 
void max_auth_time (const DCPS::TimeDuration &x)
 
DCPS::TimeDuration auth_resend_period () const
 
void auth_resend_period (const DCPS::TimeDuration &x)
 
u_short max_spdp_sequence_msg_reset_check () const
 
void max_spdp_sequence_msg_reset_check (u_short reset_value)
 
bool rtps_relay_only () const
 
void rtps_relay_only_now (bool f)
 
bool use_rtps_relay () const
 
void use_rtps_relay_now (bool f)
 
bool use_ice () const
 
void use_ice_now (bool f)
 
bool secure_participant_user_data () const
 
void secure_participant_user_data (bool value)
 
bool use_xtypes () const
 
void use_xtypes (RtpsDiscoveryConfig::UseXTypes val)
 
bool use_xtypes_complete () const
 
RtpsDiscoveryConfig_rch config () const
 
DDS::Security::ParticipantCryptoHandle get_crypto_handle (DDS::DomainId_t domain, const DCPS::GUID_t &local_participant, const DCPS::GUID_t &remote_participant=GUID_UNKNOWN) const
 
u_short get_spdp_port (DDS::DomainId_t domain, const DCPS::GUID_t &local_participant) const
 
u_short get_sedp_port (DDS::DomainId_t domain, const DCPS::GUID_t &local_participant) const
 
void spdp_rtps_relay_address (const ACE_INET_Addr &address)
 
void sedp_rtps_relay_address (const ACE_INET_Addr &address)
 
void spdp_stun_server_address (const ACE_INET_Addr &address)
 
void sedp_stun_server_address (const ACE_INET_Addr &address)
 
void append_transport_statistics (DDS::DomainId_t domain, const DCPS::GUID_t &local_participant, DCPS::TransportStatisticsSequence &seq)
 
RcHandle< DCPS::BitSubscriberinit_bit (DCPS::DomainParticipantImpl *participant)
 
void fini_bit (DCPS::DomainParticipantImpl *participant)
 
bool attach_participant (DDS::DomainId_t domainId, const GUID_t &participantId)
 
bool remove_domain_participant (DDS::DomainId_t domain_id, const GUID_t &participantId)
 
bool ignore_domain_participant (DDS::DomainId_t domain, const GUID_t &myParticipantId, const GUID_t &ignoreId)
 
bool remove_domain_participant (DDS::DomainId_t domain, const GUID_t &myParticipantId, const GUID_t &removeId)
 
bool update_domain_participant_qos (DDS::DomainId_t domain, const GUID_t &participant, const DDS::DomainParticipantQos &qos)
 
bool has_domain_participant (DDS::DomainId_t domain, const GUID_t &local, const GUID_t &remote) const
 
DCPS::TopicStatus assert_topic (GUID_t &topicId, DDS::DomainId_t domainId, const GUID_t &participantId, const char *topicName, const char *dataTypeName, const DDS::TopicQos &qos, bool hasDcpsKey, DCPS::TopicCallbacks *topic_callbacks)
 
DCPS::TopicStatus find_topic (DDS::DomainId_t domainId, const GUID_t &participantId, const char *topicName, CORBA::String_out dataTypeName, DDS::TopicQos_out qos, GUID_t &topicId)
 
DCPS::TopicStatus remove_topic (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &topicId)
 
bool ignore_topic (DDS::DomainId_t domainId, const GUID_t &myParticipantId, const GUID_t &ignoreId)
 
bool update_topic_qos (const GUID_t &topicId, DDS::DomainId_t domainId, const GUID_t &participantId, const DDS::TopicQos &qos)
 
GUID_t add_publication (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &topicId, DCPS::DataWriterCallbacks_rch publication, const DDS::DataWriterQos &qos, const DCPS::TransportLocatorSeq &transInfo, const DDS::PublisherQos &publisherQos, const XTypes::TypeInformation &type_info)
 
bool remove_publication (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &publicationId)
 
bool ignore_publication (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &ignoreId)
 
bool update_publication_qos (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &dwId, const DDS::DataWriterQos &qos, const DDS::PublisherQos &publisherQos)
 
void update_publication_locators (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &dwId, const DCPS::TransportLocatorSeq &transInfo)
 
GUID_t add_subscription (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &topicId, DCPS::DataReaderCallbacks_rch subscription, const DDS::DataReaderQos &qos, const DCPS::TransportLocatorSeq &transInfo, const DDS::SubscriberQos &subscriberQos, const char *filterClassName, const char *filterExpr, const DDS::StringSeq &params, const XTypes::TypeInformation &type_info)
 
bool remove_subscription (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &subscriptionId)
 
bool ignore_subscription (DDS::DomainId_t domainId, const GUID_t &participantId, const GUID_t &ignoreId)
 
bool update_subscription_qos (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &drId, const DDS::DataReaderQos &qos, const DDS::SubscriberQos &subQos)
 
bool update_subscription_params (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &subId, const DDS::StringSeq &params)
 
void update_subscription_locators (DDS::DomainId_t domainId, const GUID_t &partId, const GUID_t &subId, const DCPS::TransportLocatorSeq &transInfo)
 
RcHandle< DCPS::TransportInstsedp_transport_inst (DDS::DomainId_t domainId, const GUID_t &partId) const
 
void request_remote_complete_type_objects (DDS::DomainId_t domain, const GUID_t &local_participant, const GUID_t &remote_entity, const XTypes::TypeInformation &remote_type_info, DCPS::TypeObjReqCond &cond)
 
- Public Member Functions inherited from OpenDDS::DCPS::Discovery
 Discovery (const RepoKey &key)
 
virtual bool active ()
 
RepoKey key () const
 
virtual TopicStatus assert_topic (GUID_t_out topicId, DDS::DomainId_t domainId, const GUID_t &participantId, const char *topicName, const char *dataTypeName, const DDS::TopicQos &qos, bool hasDcpsKey, TopicCallbacks *topic_callbacks)=0
 
virtual TopicStatus find_topic (DDS::DomainId_t domainId, const GUID_t &participantId, const char *topicName, CORBA::String_out dataTypeName, DDS::TopicQos_out qos, GUID_t_out topicId)=0
 
virtual void pre_writer (DataWriterImpl *)
 
virtual void pre_reader (DataReaderImpl *)
 
- Public Member Functions inherited from OpenDDS::DCPS::RcObject
virtual ~RcObject ()
 
virtual void _add_ref ()
 
virtual void _remove_ref ()
 
long ref_count () const
 
WeakObject_get_weak_object () const
 

Private Member Functions

ParticipantHandle get_part (const DDS::DomainId_t domain_id, const GUID_t &part_id) const
 
RtpsDiscoveryConfig_rch get_config () const
 
void create_bit_dr (DDS::TopicDescription_ptr topic, const char *type, DCPS::SubscriberImpl *sub, const DDS::DataReaderQos &qos)
 

Private Attributes

ACE_Thread_Mutex participants_lock_
 
DomainParticipantMap participants_
 
ACE_Thread_Mutex lock_
 
RtpsDiscoveryConfig_rch config_
 
GuidGenerator guid_gen_
 Guids will be unique within this RTPS configuration. More...
 

Friends

class ::DDS_TEST
 

Additional Inherited Members

- Static Public Attributes inherited from OpenDDS::DCPS::Discovery
static const char * DEFAULT_REPO = "DEFAULT_REPO"
 Key value for the default repository IOR. More...
 
static const char * DEFAULT_RTPS = "DEFAULT_RTPS"
 
static const char * DEFAULT_STATIC = "DEFAULT_STATIC"
 
- Protected Member Functions inherited from OpenDDS::DCPS::Discovery
DDS::ReturnCode_t create_bit_topics (DomainParticipantImpl *participant)
 
- Protected Member Functions inherited from OpenDDS::DCPS::RcObject
 RcObject ()
 

Detailed Description

Discovery Strategy class that implements RTPS discovery.

This class implements the Discovery interface for Rtps-based discovery.

Definition at line 55 of file RtpsDiscovery.h.

Member Typedef Documentation

◆ AddrVec

typedef RtpsDiscoveryConfig::AddrVec OpenDDS::RTPS::RtpsDiscovery::AddrVec

Definition at line 57 of file RtpsDiscovery.h.

Constructor & Destructor Documentation

◆ RtpsDiscovery()

OpenDDS::RTPS::RtpsDiscovery::RtpsDiscovery ( const RepoKey key)
explicit

Definition at line 34 of file RtpsDiscovery.cpp.

35  : Discovery(key)
36  , config_(DCPS::make_rch<RtpsDiscoveryConfig>())
37 {
38 }
RtpsDiscoveryConfig_rch config_
sequence< octet > key
Discovery(const RepoKey &key)
Definition: Discovery.h:82

◆ ~RtpsDiscovery()

OpenDDS::RTPS::RtpsDiscovery::~RtpsDiscovery ( )

Definition at line 40 of file RtpsDiscovery.cpp.

References ACE_TEXT(), and OpenDDS::DCPS::RTPS_SECTION_NAME.

41 {
42 }

Member Function Documentation

◆ add_domain_participant()

DCPS::AddDomainStatus OpenDDS::RTPS::RtpsDiscovery::add_domain_participant ( DDS::DomainId_t  domain,
const DDS::DomainParticipantQos qos,
XTypes::TypeLookupService_rch  tls 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 842 of file RtpsDiscovery.cpp.

References ACE_DEBUG, ACE_ERROR, ACE_GUARD_RETURN, config_, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::GUID_t::entityId, OpenDDS::DCPS::ENTITYID_PARTICIPANT, guid_gen_, guid_interface(), OpenDDS::DCPS::GUID_UNKNOWN, OpenDDS::DCPS::AddDomainStatus::id, OpenDDS::RTPS::GuidGenerator::interfaceName(), LM_ERROR, LM_WARNING, lock_, OPENDDS_STRING, participants_, participants_lock_, OpenDDS::RTPS::GuidGenerator::populate(), and OpenDDS::DCPS::ref().

845 {
846  DCPS::AddDomainStatus ads = {OpenDDS::DCPS::GUID_t(), false /*federated*/};
847  {
849  const OPENDDS_STRING guid_interface = config_->guid_interface();
850  if (!guid_interface.empty()) {
851  if (guid_gen_.interfaceName(guid_interface.c_str()) != 0) {
853  ACE_DEBUG((LM_WARNING, "(%P|%t) RtpsDiscovery::add_domain_participant()"
854  " - attempt to use specific network interface %C MAC addr for"
855  " GUID generation failed.\n", guid_interface.c_str()));
856  }
857  }
858  }
859  guid_gen_.populate(ads.id);
860  }
861  ads.id.entityId = ENTITYID_PARTICIPANT;
862  try {
863  const DCPS::RcHandle<Spdp> spdp(DCPS::make_rch<Spdp>(domain, ref(ads.id), qos, this, tls));
864  // ads.id may change during Spdp constructor
866  participants_[domain][ads.id] = spdp;
867  } catch (const std::exception& e) {
868  ads.id = GUID_UNKNOWN;
869  ACE_ERROR((LM_ERROR, "(%P|%t) RtpsDiscovery::add_domain_participant() - "
870  "failed to initialize RTPS Simple Participant Discovery Protocol: %C\n",
871  e.what()));
872  }
873  return ads;
874 }
RtpsDiscoveryConfig_rch config_
#define ACE_DEBUG(X)
#define ACE_ERROR(X)
void populate(DCPS::GUID_t &container)
OPENDDS_STRING guid_interface() const
const GUID_t GUID_UNKNOWN
Nil value for GUID.
Definition: GuidUtils.h:59
reference_wrapper< T > ref(T &r)
Definition: RcHandle_T.h:237
GuidGenerator guid_gen_
Guids will be unique within this RTPS configuration.
int interfaceName(const char *nic)
DomainParticipantMap participants_
#define OPENDDS_STRING
const EntityId_t ENTITYID_PARTICIPANT
Definition: GuidUtils.h:37
ACE_Thread_Mutex participants_lock_
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

◆ add_domain_participant_secure()

DCPS::AddDomainStatus OpenDDS::RTPS::RtpsDiscovery::add_domain_participant_secure ( DDS::DomainId_t  domain,
const DDS::DomainParticipantQos qos,
XTypes::TypeLookupService_rch  tls,
const OpenDDS::DCPS::GUID_t guid,
DDS::Security::IdentityHandle  id,
DDS::Security::PermissionsHandle  perm,
DDS::Security::ParticipantCryptoHandle  part_crypto 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 878 of file RtpsDiscovery.cpp.

References ACE_ERROR, ACE_GUARD_RETURN, OpenDDS::DCPS::GUID_t::entityId, OpenDDS::DCPS::ENTITYID_PARTICIPANT, OpenDDS::DCPS::GUID_UNKNOWN, OpenDDS::DCPS::AddDomainStatus::id, LM_WARNING, participants_, and participants_lock_.

886 {
887  DCPS::AddDomainStatus ads = {guid, false /*federated*/};
889  try {
890  const DCPS::RcHandle<Spdp> spdp(DCPS::make_rch<Spdp>(
891  domain, ads.id, qos, this, tls, id, perm, part_crypto));
893  participants_[domain][ads.id] = spdp;
894  } catch (const std::exception& e) {
895  ads.id = GUID_UNKNOWN;
896  ACE_ERROR((LM_WARNING, "(%P|%t) RtpsDiscovery::add_domain_participant_secure() - "
897  "failed to initialize RTPS Simple Participant Discovery Protocol: %C\n",
898  e.what()));
899  }
900  return ads;
901 }
#define ACE_ERROR(X)
const GUID_t GUID_UNKNOWN
Nil value for GUID.
Definition: GuidUtils.h:59
DomainParticipantMap participants_
const EntityId_t ENTITYID_PARTICIPANT
Definition: GuidUtils.h:37
ACE_Thread_Mutex participants_lock_
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)
key EntityId_t entityId
Definition: DdsDcpsGuid.idl:59

◆ add_publication()

GUID_t OpenDDS::RTPS::RtpsDiscovery::add_publication ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t topicId,
DCPS::DataWriterCallbacks_rch  publication,
const DDS::DataWriterQos qos,
const DCPS::TransportLocatorSeq transInfo,
const DDS::PublisherQos publisherQos,
const XTypes::TypeInformation type_info 
)
virtual

add the passed in publication into discovery. Discovery does not participate in memory management for the publication pointer, so it requires that the publication pointer remain valid until remove_publication is called.

Implements OpenDDS::DCPS::Discovery.

Definition at line 1322 of file RtpsDiscovery.cpp.

References get_part().

1331 {
1332  return get_part(domainId, participantId)->add_publication(
1333  topicId, publication, qos, transInfo, publisherQos, type_info);
1334 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ add_subscription()

GUID_t OpenDDS::RTPS::RtpsDiscovery::add_subscription ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t topicId,
DCPS::DataReaderCallbacks_rch  subscription,
const DDS::DataReaderQos qos,
const DCPS::TransportLocatorSeq transInfo,
const DDS::SubscriberQos subscriberQos,
const char *  filterClassName,
const char *  filterExpression,
const DDS::StringSeq exprParams,
const XTypes::TypeInformation type_info 
)
virtual

add the passed in subscription into discovery. Discovery does not participate in memory management for the subscription pointer, so it requires that the subscription pointer remain valid until remove_subscription is called.

Implements OpenDDS::DCPS::Discovery.

Definition at line 1368 of file RtpsDiscovery.cpp.

References get_part().

1380 {
1381  return get_part(domainId, participantId)->add_subscription(
1382  topicId, subscription, qos, transInfo, subscriberQos, filterClassName,
1383  filterExpr, params, type_info);
1384 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ append_transport_statistics()

void OpenDDS::RTPS::RtpsDiscovery::append_transport_statistics ( DDS::DomainId_t  domain,
const DCPS::GUID_t local_participant,
DCPS::TransportStatisticsSequence seq 
)

Definition at line 1102 of file RtpsDiscovery.cpp.

References get_part().

1105 {
1106  ParticipantHandle p = get_part(domain, local_participant);
1107  if (p) {
1108  p->append_transport_statistics(seq);
1109  }
1110 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35

◆ assert_topic()

DCPS::TopicStatus OpenDDS::RTPS::RtpsDiscovery::assert_topic ( GUID_t topicId,
DDS::DomainId_t  domainId,
const GUID_t participantId,
const char *  topicName,
const char *  dataTypeName,
const DDS::TopicQos qos,
bool  hasDcpsKey,
DCPS::TopicCallbacks topic_callbacks 
)

Definition at line 1259 of file RtpsDiscovery.cpp.

References get_part(), and OpenDDS::DCPS::INTERNAL_ERROR.

1268 {
1269  ParticipantHandle part = get_part(domainId, participantId);
1270  if (part) {
1271  return part->assert_topic(topicId, topicName,
1272  dataTypeName, qos,
1273  hasDcpsKey, topic_callbacks);
1274  }
1275  return DCPS::INTERNAL_ERROR;
1276 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35

◆ attach_participant()

bool OpenDDS::RTPS::RtpsDiscovery::attach_participant ( DDS::DomainId_t  domainId,
const GUID_t participantId 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1202 of file RtpsDiscovery.cpp.

1204 {
1205  return false; // This is just for DCPSInfoRepo?
1206 }

◆ auth_resend_period() [1/2]

DCPS::TimeDuration OpenDDS::RTPS::RtpsDiscovery::auth_resend_period ( ) const
inline

Definition at line 149 of file RtpsDiscovery.h.

149 { return config_->auth_resend_period(); }
RtpsDiscoveryConfig_rch config_

◆ auth_resend_period() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::auth_resend_period ( const DCPS::TimeDuration x)
inline

Definition at line 150 of file RtpsDiscovery.h.

150 { config_->auth_resend_period(x); }
RtpsDiscoveryConfig_rch config_

◆ config()

RtpsDiscoveryConfig_rch OpenDDS::RTPS::RtpsDiscovery::config ( ) const
inline

◆ create_bit_dr()

void OpenDDS::RTPS::RtpsDiscovery::create_bit_dr ( DDS::TopicDescription_ptr  topic,
const char *  type,
DCPS::SubscriberImpl sub,
const DDS::DataReaderQos qos 
)
private

Definition at line 1449 of file RtpsDiscovery.cpp.

References ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::DataReaderImpl::disable_transport(), OpenDDS::DCPS::DataReaderImpl::enable(), OpenDDS::DCPS::SubscriberImpl::get_participant(), OpenDDS::DCPS::DataReaderImpl::init(), LM_ERROR, and Registered_Data_Types.

Referenced by init_bit().

1451 {
1452  DCPS::TopicDescriptionImpl* bit_topic_i =
1453  dynamic_cast<DCPS::TopicDescriptionImpl*>(topic);
1454  if (bit_topic_i == 0) {
1455  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: PeerDiscovery::create_bit_dr: ")
1456  ACE_TEXT("Could not cast TopicDescription to TopicDescriptionImpl\n")));
1457  return;
1458  }
1459 
1460  DDS::DomainParticipant_var participant = sub->get_participant();
1461  DCPS::DomainParticipantImpl* participant_i =
1462  dynamic_cast<DCPS::DomainParticipantImpl*>(participant.in());
1463  if (participant_i == 0) {
1464  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: PeerDiscovery::create_bit_dr: ")
1465  ACE_TEXT("Could not cast DomainParticipant to DomainParticipantImpl\n")));
1466  return;
1467  }
1468 
1469  DCPS::TypeSupport_var type_support =
1470  Registered_Data_Types->lookup(participant, type);
1471 
1472  DDS::DataReader_var dr = type_support->create_datareader();
1473  DCPS::DataReaderImpl* dri = dynamic_cast<DCPS::DataReaderImpl*>(dr.in());
1474  if (dri == 0) {
1475  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) ERROR: PeerDiscovery::create_bit_dr: ")
1476  ACE_TEXT("Could not cast DataReader to DataReaderImpl\n")));
1477  return;
1478  }
1479 
1480  dri->init(bit_topic_i, qos, 0 /*listener*/, 0 /*mask*/, participant_i, sub);
1481  dri->disable_transport();
1482  dri->enable();
1483 }
#define ACE_ERROR(X)
#define Registered_Data_Types
ACE_TEXT("TCP_Factory")

◆ d0() [1/2]

u_short OpenDDS::RTPS::RtpsDiscovery::d0 ( ) const
inline

Definition at line 113 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::RtpsDiscovery::Config::discovery_config().

113 { return config_->d0(); }
RtpsDiscoveryConfig_rch config_

◆ d0() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::d0 ( u_short  offset_zero)
inline

Definition at line 114 of file RtpsDiscovery.h.

114 { config_->d0(offset_zero); }
RtpsDiscoveryConfig_rch config_

◆ d1() [1/2]

u_short OpenDDS::RTPS::RtpsDiscovery::d1 ( ) const
inline

Definition at line 116 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::RtpsDiscovery::Config::discovery_config().

116 { return config_->d1(); }
RtpsDiscoveryConfig_rch config_

◆ d1() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::d1 ( u_short  offset_one)
inline

Definition at line 117 of file RtpsDiscovery.h.

117 { config_->d1(offset_one); }
RtpsDiscoveryConfig_rch config_

◆ default_multicast_group() [1/2]

ACE_INET_Addr OpenDDS::RTPS::RtpsDiscovery::default_multicast_group ( ) const
inline

Definition at line 137 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::Sedp::init().

137 { return config_->default_multicast_group(); }
RtpsDiscoveryConfig_rch config_

◆ default_multicast_group() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::default_multicast_group ( const ACE_INET_Addr group)
inline

Definition at line 138 of file RtpsDiscovery.h.

138 { config_->default_multicast_group(group); }
RtpsDiscoveryConfig_rch config_

◆ dg() [1/2]

u_short OpenDDS::RTPS::RtpsDiscovery::dg ( ) const
inline

Definition at line 107 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::RtpsDiscovery::Config::discovery_config(), and OpenDDS::RTPS::Sedp::init().

107 { return config_->dg(); }
RtpsDiscoveryConfig_rch config_

◆ dg() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::dg ( u_short  domain_gain)
inline

Definition at line 108 of file RtpsDiscovery.h.

108 { config_->dg(domain_gain); }
RtpsDiscoveryConfig_rch config_

◆ dx() [1/2]

u_short OpenDDS::RTPS::RtpsDiscovery::dx ( ) const
inline

Definition at line 119 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::RtpsDiscovery::Config::discovery_config(), and OpenDDS::RTPS::Sedp::init().

119 { return config_->dx(); }
RtpsDiscoveryConfig_rch config_

◆ dx() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::dx ( u_short  offset_two)
inline

Definition at line 120 of file RtpsDiscovery.h.

120 { config_->dx(offset_two); }
RtpsDiscoveryConfig_rch config_

◆ find_topic()

DCPS::TopicStatus OpenDDS::RTPS::RtpsDiscovery::find_topic ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const char *  topicName,
CORBA::String_out  dataTypeName,
DDS::TopicQos_out  qos,
GUID_t topicId 
)

Definition at line 1278 of file RtpsDiscovery.cpp.

References get_part(), and OpenDDS::DCPS::INTERNAL_ERROR.

1285 {
1286  ParticipantHandle part = get_part(domainId, participantId);
1287  if (part) {
1288  return part->find_topic(topicName, dataTypeName, qos, topicId);
1289  }
1290  return DCPS::INTERNAL_ERROR;
1291 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35

◆ fini_bit()

void OpenDDS::RTPS::RtpsDiscovery::fini_bit ( DCPS::DomainParticipantImpl participant)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1197 of file RtpsDiscovery.cpp.

References OpenDDS::DCPS::DomainParticipantImpl::get_domain_id(), OpenDDS::DCPS::DomainParticipantImpl::get_id(), and get_part().

1198 {
1199  get_part(participant->get_domain_id(), participant->get_id())->fini_bit();
1200 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
void fini_bit(DCPS::DomainParticipantImpl *participant)

◆ generate_participant_guid()

OpenDDS::DCPS::GUID_t OpenDDS::RTPS::RtpsDiscovery::generate_participant_guid ( )
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 822 of file RtpsDiscovery.cpp.

References ACE_DEBUG, ACE_GUARD_RETURN, config_, OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::ENTITYID_PARTICIPANT, guid_gen_, guid_interface(), OpenDDS::DCPS::GUID_UNKNOWN, OpenDDS::RTPS::GuidGenerator::interfaceName(), LM_WARNING, lock_, OPENDDS_STRING, and OpenDDS::RTPS::GuidGenerator::populate().

823 {
826  const OPENDDS_STRING guid_interface = config_->guid_interface();
827  if (!guid_interface.empty()) {
828  if (guid_gen_.interfaceName(guid_interface.c_str()) != 0) {
830  ACE_DEBUG((LM_WARNING, "(%P|%t) RtpsDiscovery::generate_participant_guid()"
831  " - attempt to use network interface %C MAC addr for"
832  " GUID generation failed.\n", guid_interface.c_str()));
833  }
834  }
835  }
836  guid_gen_.populate(id);
837  id.entityId = ENTITYID_PARTICIPANT;
838  return id;
839 }
RtpsDiscoveryConfig_rch config_
#define ACE_DEBUG(X)
void populate(DCPS::GUID_t &container)
OPENDDS_STRING guid_interface() const
const GUID_t GUID_UNKNOWN
Nil value for GUID.
Definition: GuidUtils.h:59
GuidGenerator guid_gen_
Guids will be unique within this RTPS configuration.
int interfaceName(const char *nic)
#define OPENDDS_STRING
const EntityId_t ENTITYID_PARTICIPANT
Definition: GuidUtils.h:37
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30

◆ get_config()

RtpsDiscoveryConfig_rch OpenDDS::RTPS::RtpsDiscovery::get_config ( ) const
private

◆ get_crypto_handle()

DDS::Security::ParticipantCryptoHandle OpenDDS::RTPS::RtpsDiscovery::get_crypto_handle ( DDS::DomainId_t  domain,
const DCPS::GUID_t local_participant,
const DCPS::GUID_t remote_participant = GUID_UNKNOWN 
) const

Definition at line 968 of file RtpsDiscovery.cpp.

References get_part(), OpenDDS::DCPS::GUID_UNKNOWN, and DDS::HANDLE_NIL.

971 {
972  ParticipantHandle p = get_part(domain, local_participant);
973  if (p) {
974  if (remote_participant == GUID_UNKNOWN || remote_participant == local_participant) {
975  return p->crypto_handle();
976  } else {
977  return p->remote_crypto_handle(remote_participant);
978  }
979  }
980 
981  return DDS::HANDLE_NIL;
982 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
const InstanceHandle_t HANDLE_NIL
const GUID_t GUID_UNKNOWN
Nil value for GUID.
Definition: GuidUtils.h:59
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35

◆ get_part()

ParticipantHandle OpenDDS::RTPS::RtpsDiscovery::get_part ( const DDS::DomainId_t  domain_id,
const GUID_t part_id 
) const
private

Definition at line 1429 of file RtpsDiscovery.cpp.

References participants_, and participants_lock_.

Referenced by add_publication(), add_subscription(), append_transport_statistics(), assert_topic(), find_topic(), fini_bit(), get_crypto_handle(), get_sedp_port(), get_spdp_port(), has_domain_participant(), ignore_domain_participant(), ignore_publication(), ignore_subscription(), ignore_topic(), init_bit(), remove_domain_participant(), remove_publication(), remove_subscription(), remove_topic(), request_remote_complete_type_objects(), sedp_transport_inst(), signal_liveliness(), update_domain_participant_qos(), update_publication_locators(), update_publication_qos(), update_subscription_locators(), update_subscription_params(), update_subscription_qos(), and update_topic_qos().

1430 {
1432  const DomainParticipantMap::const_iterator domain = participants_.find(domain_id);
1433  if (domain == participants_.end()) {
1434  return ParticipantHandle();
1435  }
1436  const ParticipantMap::const_iterator part = domain->second.find(part_id);
1437  if (part == domain->second.end()) {
1438  return ParticipantHandle();
1439  }
1440  return part->second;
1441 }
DomainParticipantMap participants_
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35
ACE_Thread_Mutex participants_lock_

◆ get_sedp_port()

u_short OpenDDS::RTPS::RtpsDiscovery::get_sedp_port ( DDS::DomainId_t  domain,
const DCPS::GUID_t local_participant 
) const

Definition at line 1004 of file RtpsDiscovery.cpp.

References get_part().

1006 {
1007  ParticipantHandle p = get_part(domain, local_participant);
1008  if (p) {
1009  return p->get_sedp_port();
1010  }
1011 
1012  return 0;
1013 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35

◆ get_spdp_port()

u_short OpenDDS::RTPS::RtpsDiscovery::get_spdp_port ( DDS::DomainId_t  domain,
const DCPS::GUID_t local_participant 
) const

Definition at line 992 of file RtpsDiscovery.cpp.

References get_part().

994 {
995  ParticipantHandle p = get_part(domain, local_participant);
996  if (p) {
997  return p->get_spdp_port();
998  }
999 
1000  return 0;
1001 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35

◆ guid_interface() [1/2]

OPENDDS_STRING OpenDDS::RTPS::RtpsDiscovery::guid_interface ( ) const
inline

Definition at line 143 of file RtpsDiscovery.h.

Referenced by add_domain_participant(), and generate_participant_guid().

143 { return config_->guid_interface(); }
RtpsDiscoveryConfig_rch config_

◆ guid_interface() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::guid_interface ( const OPENDDS_STRING gi)
inline

Definition at line 144 of file RtpsDiscovery.h.

144 { config_->guid_interface(gi); }
RtpsDiscoveryConfig_rch config_

◆ has_domain_participant()

bool OpenDDS::RTPS::RtpsDiscovery::has_domain_participant ( DDS::DomainId_t  domain,
const GUID_t local,
const GUID_t remote 
) const

Definition at line 1254 of file RtpsDiscovery.cpp.

References get_part().

1255 {
1256  return get_part(domain, local)->has_domain_participant(remote);
1257 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ ignore_domain_participant()

bool OpenDDS::RTPS::RtpsDiscovery::ignore_domain_participant ( DDS::DomainId_t  domain,
const GUID_t myParticipantId,
const GUID_t ignoreId 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1234 of file RtpsDiscovery.cpp.

References get_part().

1236 {
1237  get_part(domain, myParticipantId)->ignore_domain_participant(ignoreId);
1238  return true;
1239 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ ignore_publication()

bool OpenDDS::RTPS::RtpsDiscovery::ignore_publication ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t ignoreId 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1343 of file RtpsDiscovery.cpp.

References get_part().

1345 {
1346  get_part(domainId, participantId)->ignore_publication(ignoreId);
1347  return true;
1348 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ ignore_subscription()

bool OpenDDS::RTPS::RtpsDiscovery::ignore_subscription ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t ignoreId 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1393 of file RtpsDiscovery.cpp.

References get_part().

1395 {
1396  get_part(domainId, participantId)->ignore_subscription(ignoreId);
1397  return true;
1398 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ ignore_topic()

bool OpenDDS::RTPS::RtpsDiscovery::ignore_topic ( DDS::DomainId_t  domainId,
const GUID_t myParticipantId,
const GUID_t ignoreId 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1305 of file RtpsDiscovery.cpp.

References get_part().

1307 {
1308  get_part(domainId, myParticipantId)->ignore_topic(ignoreId);
1309  return true;
1310 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ init_bit()

RcHandle< DCPS::BitSubscriber > OpenDDS::RTPS::RtpsDiscovery::init_bit ( DCPS::DomainParticipantImpl participant)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1112 of file RtpsDiscovery.cpp.

References ACE_DEBUG, ACE_ERROR, ACE_TEXT(), OpenDDS::DCPS::BUILT_IN_CONNECTION_RECORD_TOPIC, OpenDDS::DCPS::BUILT_IN_CONNECTION_RECORD_TOPIC_TYPE, OpenDDS::DCPS::BUILT_IN_INTERNAL_THREAD_TOPIC, OpenDDS::DCPS::BUILT_IN_INTERNAL_THREAD_TOPIC_TYPE, OpenDDS::DCPS::BUILT_IN_PARTICIPANT_LOCATION_TOPIC, OpenDDS::DCPS::BUILT_IN_PARTICIPANT_LOCATION_TOPIC_TYPE, OpenDDS::DCPS::BUILT_IN_PARTICIPANT_TOPIC, OpenDDS::DCPS::BUILT_IN_PARTICIPANT_TOPIC_TYPE, OpenDDS::DCPS::BUILT_IN_PUBLICATION_TOPIC, OpenDDS::DCPS::BUILT_IN_PUBLICATION_TOPIC_TYPE, OpenDDS::DCPS::BUILT_IN_SUBSCRIPTION_TOPIC, OpenDDS::DCPS::BUILT_IN_SUBSCRIPTION_TOPIC_TYPE, OpenDDS::DCPS::BUILT_IN_TOPIC_TOPIC, OpenDDS::DCPS::BUILT_IN_TOPIC_TOPIC_TYPE, create_bit_dr(), OpenDDS::DCPS::Discovery::create_bit_topics(), OpenDDS::DCPS::DomainParticipantImpl::create_subscriber(), OpenDDS::DCPS::DCPS_debug_level, OpenDDS::DCPS::DEFAULT_STATUS_MASK, OpenDDS::DCPS::SubscriberImpl::get_default_datareader_qos(), OpenDDS::DCPS::DomainParticipantImpl::get_domain_id(), OpenDDS::DCPS::DomainParticipantImpl::get_id(), get_part(), OpenDDS::DCPS::RcHandle< T >::in(), LM_ERROR, LM_INFO, OpenDDS::DCPS::DomainParticipantImpl::lookup_topicdescription(), DDS::RETCODE_OK, SUBSCRIBER_QOS_DEFAULT, TheServiceParticipant, and DDS::TRANSIENT_LOCAL_DURABILITY_QOS.

1113 {
1114  DDS::Subscriber_var bit_subscriber;
1115 #ifndef DDS_HAS_MINIMUM_BIT
1116  if (!TheServiceParticipant->get_BIT()) {
1117  DCPS::RcHandle<DCPS::BitSubscriber> bit_subscriber_rch = DCPS::make_rch<DCPS::BitSubscriber>();
1118  get_part(participant->get_domain_id(), participant->get_id())->init_bit(bit_subscriber_rch);
1119  return DCPS::RcHandle<DCPS::BitSubscriber>();
1120  }
1121 
1122  if (create_bit_topics(participant) != DDS::RETCODE_OK) {
1123  return RcHandle<DCPS::BitSubscriber>();
1124  }
1125 
1126  bit_subscriber =
1127  participant->create_subscriber(SUBSCRIBER_QOS_DEFAULT,
1128  DDS::SubscriberListener::_nil(),
1130  DCPS::SubscriberImpl* sub = dynamic_cast<DCPS::SubscriberImpl*>(bit_subscriber.in());
1131  if (sub == 0) {
1132  ACE_ERROR((LM_ERROR, ACE_TEXT("(%P|%t) PeerDiscovery::init_bit")
1133  ACE_TEXT(" - Could not cast Subscriber to SubscriberImpl\n")));
1134  return RcHandle<DCPS::BitSubscriber>();
1135  }
1136 
1137  DDS::DataReaderQos dr_qos;
1138  sub->get_default_datareader_qos(dr_qos);
1140 
1141  dr_qos.reader_data_lifecycle.autopurge_nowriter_samples_delay =
1142  TheServiceParticipant->bit_autopurge_nowriter_samples_delay();
1143  dr_qos.reader_data_lifecycle.autopurge_disposed_samples_delay =
1144  TheServiceParticipant->bit_autopurge_disposed_samples_delay();
1145 
1146  DDS::TopicDescription_var bit_part_topic =
1147  participant->lookup_topicdescription(DCPS::BUILT_IN_PARTICIPANT_TOPIC);
1149  sub, dr_qos);
1150 
1151  DDS::TopicDescription_var bit_topic_topic =
1152  participant->lookup_topicdescription(DCPS::BUILT_IN_TOPIC_TOPIC);
1154  sub, dr_qos);
1155 
1156  DDS::TopicDescription_var bit_pub_topic =
1157  participant->lookup_topicdescription(DCPS::BUILT_IN_PUBLICATION_TOPIC);
1159  sub, dr_qos);
1160 
1161  DDS::TopicDescription_var bit_sub_topic =
1162  participant->lookup_topicdescription(DCPS::BUILT_IN_SUBSCRIPTION_TOPIC);
1164  sub, dr_qos);
1165 
1166  DDS::TopicDescription_var bit_part_loc_topic =
1167  participant->lookup_topicdescription(DCPS::BUILT_IN_PARTICIPANT_LOCATION_TOPIC);
1169  sub, dr_qos);
1170 
1171  DDS::TopicDescription_var bit_connection_record_topic =
1172  participant->lookup_topicdescription(DCPS::BUILT_IN_CONNECTION_RECORD_TOPIC);
1173  create_bit_dr(bit_connection_record_topic, DCPS::BUILT_IN_CONNECTION_RECORD_TOPIC_TYPE,
1174  sub, dr_qos);
1175 
1176  DDS::TopicDescription_var bit_internal_thread_topic =
1177  participant->lookup_topicdescription(DCPS::BUILT_IN_INTERNAL_THREAD_TOPIC);
1178  create_bit_dr(bit_internal_thread_topic, DCPS::BUILT_IN_INTERNAL_THREAD_TOPIC_TYPE,
1179  sub, dr_qos);
1180 
1181  const DDS::ReturnCode_t ret = bit_subscriber->enable();
1182  if (ret != DDS::RETCODE_OK) {
1183  if (DCPS_debug_level) {
1184  ACE_DEBUG((LM_INFO, ACE_TEXT("(%P|%t) PeerDiscovery::init_bit")
1185  ACE_TEXT(" - Error %d enabling subscriber\n"), ret));
1186  }
1187  return RcHandle<DCPS::BitSubscriber>();
1188  }
1189 #endif /* DDS_HAS_MINIMUM_BIT */
1190 
1191  DCPS::RcHandle<DCPS::BitSubscriber> bit_subscriber_rch = DCPS::make_rch<DCPS::BitSubscriber>(bit_subscriber);
1192  get_part(participant->get_domain_id(), participant->get_id())->init_bit(bit_subscriber_rch);
1193 
1194  return bit_subscriber_rch;
1195 }
const char *const BUILT_IN_SUBSCRIPTION_TOPIC_TYPE
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
#define ACE_DEBUG(X)
#define ACE_ERROR(X)
const char *const BUILT_IN_CONNECTION_RECORD_TOPIC_TYPE
const char *const BUILT_IN_CONNECTION_RECORD_TOPIC
DDS::ReturnCode_t create_bit_topics(DomainParticipantImpl *participant)
Definition: Discovery.cpp:51
const DDS::StatusMask DEFAULT_STATUS_MASK
void create_bit_dr(DDS::TopicDescription_ptr topic, const char *type, DCPS::SubscriberImpl *sub, const DDS::DataReaderQos &qos)
const char *const BUILT_IN_PUBLICATION_TOPIC
DurabilityQosPolicyKind kind
DurabilityQosPolicy durability
const char *const BUILT_IN_PARTICIPANT_LOCATION_TOPIC_TYPE
RcHandle< DCPS::BitSubscriber > init_bit(DCPS::DomainParticipantImpl *participant)
const char *const BUILT_IN_PARTICIPANT_TOPIC
const char *const BUILT_IN_PARTICIPANT_LOCATION_TOPIC
ACE_TEXT("TCP_Factory")
const char *const BUILT_IN_PARTICIPANT_TOPIC_TYPE
const char *const BUILT_IN_SUBSCRIPTION_TOPIC
#define SUBSCRIBER_QOS_DEFAULT
const char *const BUILT_IN_INTERNAL_THREAD_TOPIC
OpenDDS_Dcps_Export unsigned int DCPS_debug_level
Definition: debug.cpp:30
const char *const BUILT_IN_TOPIC_TOPIC
const ReturnCode_t RETCODE_OK
const char *const BUILT_IN_INTERNAL_THREAD_TOPIC_TYPE
#define TheServiceParticipant
const char *const BUILT_IN_TOPIC_TOPIC_TYPE
const char *const BUILT_IN_PUBLICATION_TOPIC_TYPE

◆ lease_duration() [1/2]

DCPS::TimeDuration OpenDDS::RTPS::RtpsDiscovery::lease_duration ( ) const
inline

Definition at line 98 of file RtpsDiscovery.h.

98 { return config_->lease_duration(); }
RtpsDiscoveryConfig_rch config_

◆ lease_duration() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::lease_duration ( const DCPS::TimeDuration period)
inline

Definition at line 99 of file RtpsDiscovery.h.

99 { config_->lease_duration(period); }
RtpsDiscoveryConfig_rch config_

◆ lease_extension() [1/2]

DCPS::TimeDuration OpenDDS::RTPS::RtpsDiscovery::lease_extension ( ) const
inline

Definition at line 101 of file RtpsDiscovery.h.

101 { return config_->lease_extension(); }
RtpsDiscoveryConfig_rch config_

◆ lease_extension() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::lease_extension ( const DCPS::TimeDuration period)
inline

Definition at line 102 of file RtpsDiscovery.h.

102 { config_->lease_extension(period); }
RtpsDiscoveryConfig_rch config_

◆ max_auth_time() [1/2]

DCPS::TimeDuration OpenDDS::RTPS::RtpsDiscovery::max_auth_time ( ) const
inline

Definition at line 146 of file RtpsDiscovery.h.

146 { return config_->max_auth_time(); }
RtpsDiscoveryConfig_rch config_

◆ max_auth_time() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::max_auth_time ( const DCPS::TimeDuration x)
inline

Definition at line 147 of file RtpsDiscovery.h.

147 { config_->max_auth_time(x); }
RtpsDiscoveryConfig_rch config_

◆ max_spdp_sequence_msg_reset_check() [1/2]

u_short OpenDDS::RTPS::RtpsDiscovery::max_spdp_sequence_msg_reset_check ( ) const
inline

Definition at line 152 of file RtpsDiscovery.h.

152 { return config_->max_spdp_sequence_msg_reset_check(); }
RtpsDiscoveryConfig_rch config_

◆ max_spdp_sequence_msg_reset_check() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::max_spdp_sequence_msg_reset_check ( u_short  reset_value)
inline

Definition at line 153 of file RtpsDiscovery.h.

153 { config_->max_spdp_sequence_msg_reset_check(reset_value); }
RtpsDiscoveryConfig_rch config_

◆ multicast_interface() [1/2]

OPENDDS_STRING OpenDDS::RTPS::RtpsDiscovery::multicast_interface ( ) const
inline

Definition at line 134 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::Sedp::init().

134 { return config_->multicast_interface(); }
RtpsDiscoveryConfig_rch config_

◆ multicast_interface() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::multicast_interface ( const OPENDDS_STRING mi)
inline

Definition at line 135 of file RtpsDiscovery.h.

135 { config_->multicast_interface(mi); }
RtpsDiscoveryConfig_rch config_

◆ pb() [1/2]

u_short OpenDDS::RTPS::RtpsDiscovery::pb ( ) const
inline

Definition at line 104 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::RtpsDiscovery::Config::discovery_config(), and OpenDDS::RTPS::Sedp::init().

104 { return config_->pb(); }
RtpsDiscoveryConfig_rch config_

◆ pb() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::pb ( u_short  port_base)
inline

Definition at line 105 of file RtpsDiscovery.h.

105 { config_->pb(port_base); }
RtpsDiscoveryConfig_rch config_

◆ pg() [1/2]

u_short OpenDDS::RTPS::RtpsDiscovery::pg ( ) const
inline

Definition at line 110 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::RtpsDiscovery::Config::discovery_config().

110 { return config_->pg(); }
RtpsDiscoveryConfig_rch config_

◆ pg() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::pg ( u_short  participant_gain)
inline

Definition at line 111 of file RtpsDiscovery.h.

111 { config_->pg(participant_gain); }
RtpsDiscoveryConfig_rch config_

◆ remove_domain_participant() [1/2]

bool OpenDDS::RTPS::RtpsDiscovery::remove_domain_participant ( DDS::DomainId_t  domain_id,
const GUID_t participantId 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1208 of file RtpsDiscovery.cpp.

References ACE_GUARD_RETURN, participants_, and participants_lock_.

1210 {
1211  // Use reference counting to ensure participant
1212  // does not get deleted until lock as been released.
1213  ParticipantHandle participant;
1215  DomainParticipantMap::iterator domain = participants_.find(domain_id);
1216  if (domain == participants_.end()) {
1217  return false;
1218  }
1219  ParticipantMap::iterator part = domain->second.find(participantId);
1220  if (part == domain->second.end()) {
1221  return false;
1222  }
1223  participant = part->second;
1224  domain->second.erase(part);
1225  if (domain->second.empty()) {
1226  participants_.erase(domain);
1227  }
1228  g.release();
1229 
1230  participant->shutdown();
1231  return true;
1232 }
DomainParticipantMap participants_
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35
ACE_Thread_Mutex participants_lock_
#define ACE_GUARD_RETURN(MUTEX, OBJ, LOCK, RETURN)

◆ remove_domain_participant() [2/2]

bool OpenDDS::RTPS::RtpsDiscovery::remove_domain_participant ( DDS::DomainId_t  domain,
const GUID_t myParticipantId,
const GUID_t removeId 
)

Definition at line 1241 of file RtpsDiscovery.cpp.

References get_part().

1243 {
1244  get_part(domain, myParticipantId)->remove_domain_participant(removeId);
1245  return true;
1246 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ remove_publication()

bool OpenDDS::RTPS::RtpsDiscovery::remove_publication ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t publicationId 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1336 of file RtpsDiscovery.cpp.

References get_part().

1338 {
1339  get_part(domainId, participantId)->remove_publication(publicationId);
1340  return true;
1341 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ remove_subscription()

bool OpenDDS::RTPS::RtpsDiscovery::remove_subscription ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t subscriptionId 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1386 of file RtpsDiscovery.cpp.

References get_part().

1388 {
1389  get_part(domainId, participantId)->remove_subscription(subscriptionId);
1390  return true;
1391 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ remove_topic()

DCPS::TopicStatus OpenDDS::RTPS::RtpsDiscovery::remove_topic ( DDS::DomainId_t  domainId,
const GUID_t participantId,
const GUID_t topicId 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1293 of file RtpsDiscovery.cpp.

References get_part(), and OpenDDS::DCPS::INTERNAL_ERROR.

1297 {
1298  ParticipantHandle part = get_part(domainId, participantId);
1299  if (part) {
1300  return part->remove_topic(topicId);
1301  }
1302  return DCPS::INTERNAL_ERROR;
1303 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35

◆ request_remote_complete_type_objects()

void OpenDDS::RTPS::RtpsDiscovery::request_remote_complete_type_objects ( DDS::DomainId_t  domain,
const GUID_t local_participant,
const GUID_t remote_entity,
const XTypes::TypeInformation remote_type_info,
DCPS::TypeObjReqCond cond 
)
virtual

Reimplemented from OpenDDS::DCPS::Discovery.

Definition at line 1485 of file RtpsDiscovery.cpp.

References get_part(), and OPENDDS_END_VERSIONED_NAMESPACE_DECL.

1489 {
1490  ParticipantHandle spdp = get_part(domain, local_participant);
1491  spdp->request_remote_complete_type_objects(remote_entity, remote_type_info, cond);
1492 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35

◆ resend_period() [1/2]

DCPS::TimeDuration OpenDDS::RTPS::RtpsDiscovery::resend_period ( ) const
inline

Definition at line 95 of file RtpsDiscovery.h.

95 { return config_->resend_period(); }
RtpsDiscoveryConfig_rch config_

◆ resend_period() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::resend_period ( const DCPS::TimeDuration period)
inline

Definition at line 96 of file RtpsDiscovery.h.

96 { config_->resend_period(period); }
RtpsDiscoveryConfig_rch config_

◆ rtps_relay_only()

bool OpenDDS::RTPS::RtpsDiscovery::rtps_relay_only ( ) const
inline

Definition at line 155 of file RtpsDiscovery.h.

155 { return config_->rtps_relay_only(); }
RtpsDiscoveryConfig_rch config_

◆ rtps_relay_only_now()

void OpenDDS::RTPS::RtpsDiscovery::rtps_relay_only_now ( bool  f)

Definition at line 913 of file RtpsDiscovery.cpp.

References ACE_GUARD, config(), get_config(), participants_, and participants_lock_.

914 {
916  const bool before = config->rtps_relay_only();
917  config->rtps_relay_only(after);
918 
919  if (before != after) {
921  for (DomainParticipantMap::const_iterator dom_pos = participants_.begin(), dom_limit = participants_.end();
922  dom_pos != dom_limit; ++dom_pos) {
923  for (ParticipantMap::const_iterator part_pos = dom_pos->second.begin(), part_limit = dom_pos->second.end(); part_pos != part_limit; ++part_pos) {
924  part_pos->second->rtps_relay_only_now(after);
925  }
926  }
927  }
928 }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
RtpsDiscoveryConfig_rch config() const
OpenDDS::DCPS::RcHandle< RtpsDiscoveryConfig > RtpsDiscoveryConfig_rch
Definition: RtpsDiscovery.h:38
DomainParticipantMap participants_
RtpsDiscoveryConfig_rch get_config() const
ACE_Thread_Mutex participants_lock_

◆ secure_participant_user_data() [1/2]

bool OpenDDS::RTPS::RtpsDiscovery::secure_participant_user_data ( ) const
inline

Definition at line 164 of file RtpsDiscovery.h.

165  {
166  return config_->secure_participant_user_data();
167  }
RtpsDiscoveryConfig_rch config_

◆ secure_participant_user_data() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::secure_participant_user_data ( bool  value)
inline

Definition at line 168 of file RtpsDiscovery.h.

169  {
170  config_->secure_participant_user_data(value);
171  }
RtpsDiscoveryConfig_rch config_
const LogLevel::Value value
Definition: debug.cpp:61

◆ sedp_local_address() [1/2]

ACE_INET_Addr OpenDDS::RTPS::RtpsDiscovery::sedp_local_address ( ) const
inline

Definition at line 125 of file RtpsDiscovery.h.

125 { return config_->sedp_local_address(); }
RtpsDiscoveryConfig_rch config_

◆ sedp_local_address() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::sedp_local_address ( const ACE_INET_Addr mi)
inline

Definition at line 126 of file RtpsDiscovery.h.

126 { config_->sedp_local_address(mi); }
RtpsDiscoveryConfig_rch config_

◆ sedp_multicast() [1/2]

bool OpenDDS::RTPS::RtpsDiscovery::sedp_multicast ( ) const
inline

Definition at line 131 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::Sedp::init().

131 { return config_->sedp_multicast(); }
RtpsDiscoveryConfig_rch config_

◆ sedp_multicast() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::sedp_multicast ( bool  sm)
inline

Definition at line 132 of file RtpsDiscovery.h.

132 { config_->sedp_multicast(sm); }
RtpsDiscoveryConfig_rch config_

◆ sedp_rtps_relay_address()

void OpenDDS::RTPS::RtpsDiscovery::sedp_rtps_relay_address ( const ACE_INET_Addr address)

Definition at line 1067 of file RtpsDiscovery.cpp.

References ACE_GUARD, config(), get_config(), participants_, and participants_lock_.

1068 {
1070  config->sedp_rtps_relay_address(address);
1071 
1073  for (DomainParticipantMap::const_iterator dom_pos = participants_.begin(), dom_limit = participants_.end();
1074  dom_pos != dom_limit; ++dom_pos) {
1075  for (ParticipantMap::const_iterator part_pos = dom_pos->second.begin(), part_limit = dom_pos->second.end(); part_pos != part_limit; ++part_pos) {
1076  part_pos->second->sedp_rtps_relay_address(address);
1077  }
1078  }
1079 }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
RtpsDiscoveryConfig_rch config() const
OpenDDS::DCPS::RcHandle< RtpsDiscoveryConfig > RtpsDiscoveryConfig_rch
Definition: RtpsDiscovery.h:38
DomainParticipantMap participants_
RtpsDiscoveryConfig_rch get_config() const
ACE_Thread_Mutex participants_lock_

◆ sedp_stun_server_address()

void OpenDDS::RTPS::RtpsDiscovery::sedp_stun_server_address ( const ACE_INET_Addr address)

Definition at line 1088 of file RtpsDiscovery.cpp.

References ACE_GUARD, get_config(), participants_, and participants_lock_.

1089 {
1090  get_config()->sedp_stun_server_address(address);
1091 
1093  for (DomainParticipantMap::const_iterator dom_pos = participants_.begin(), dom_limit = participants_.end();
1094  dom_pos != dom_limit; ++dom_pos) {
1095  for (ParticipantMap::const_iterator part_pos = dom_pos->second.begin(), part_limit = dom_pos->second.end(); part_pos != part_limit; ++part_pos) {
1096  part_pos->second->sedp_stun_server_address(address);
1097  }
1098  }
1099 }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
DomainParticipantMap participants_
RtpsDiscoveryConfig_rch get_config() const
ACE_Thread_Mutex participants_lock_

◆ sedp_transport_inst()

RcHandle< DCPS::TransportInst > OpenDDS::RTPS::RtpsDiscovery::sedp_transport_inst ( DDS::DomainId_t  domainId,
const GUID_t partId 
) const

Definition at line 1423 of file RtpsDiscovery.cpp.

References get_part().

1425 {
1426  return get_part(domainId, partId)->sedp_transport_inst();
1427 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ signal_liveliness()

void OpenDDS::RTPS::RtpsDiscovery::signal_liveliness ( const DDS::DomainId_t  domain_id,
const OpenDDS::DCPS::GUID_t part_id,
DDS::LivelinessQosPolicyKind  kind 
)
virtual

Reimplemented from OpenDDS::DCPS::Discovery.

Definition at line 905 of file RtpsDiscovery.cpp.

References get_part().

908 {
909  get_part(domain_id, part_id)->signal_liveliness(kind);
910 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ spdp_local_address() [1/2]

ACE_INET_Addr OpenDDS::RTPS::RtpsDiscovery::spdp_local_address ( ) const
inline

Definition at line 128 of file RtpsDiscovery.h.

128 { return config_->spdp_local_address(); }
RtpsDiscoveryConfig_rch config_

◆ spdp_local_address() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::spdp_local_address ( const ACE_INET_Addr mi)
inline

Definition at line 129 of file RtpsDiscovery.h.

129 { config_->spdp_local_address(mi); }
RtpsDiscoveryConfig_rch config_

◆ spdp_rtps_relay_address()

void OpenDDS::RTPS::RtpsDiscovery::spdp_rtps_relay_address ( const ACE_INET_Addr address)

Definition at line 1043 of file RtpsDiscovery.cpp.

References ACE_GUARD, config(), get_config(), participants_, and participants_lock_.

1044 {
1046  const ACE_INET_Addr prev = config->spdp_rtps_relay_address();
1047  if (prev == address) {
1048  return;
1049  }
1050 
1051  config->spdp_rtps_relay_address(address);
1052 
1053  if (address == ACE_INET_Addr()) {
1054  return;
1055  }
1056 
1058  for (DomainParticipantMap::const_iterator dom_pos = participants_.begin(), dom_limit = participants_.end();
1059  dom_pos != dom_limit; ++dom_pos) {
1060  for (ParticipantMap::const_iterator part_pos = dom_pos->second.begin(), part_limit = dom_pos->second.end(); part_pos != part_limit; ++part_pos) {
1061  part_pos->second->spdp_rtps_relay_address_change();
1062  }
1063  }
1064 }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
RtpsDiscoveryConfig_rch config() const
OpenDDS::DCPS::RcHandle< RtpsDiscoveryConfig > RtpsDiscoveryConfig_rch
Definition: RtpsDiscovery.h:38
DomainParticipantMap participants_
RtpsDiscoveryConfig_rch get_config() const
ACE_Thread_Mutex participants_lock_

◆ spdp_send_addrs() [1/2]

AddrVec OpenDDS::RTPS::RtpsDiscovery::spdp_send_addrs ( ) const
inline

Definition at line 140 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::RtpsDiscovery::Config::discovery_config().

140 { return config_->spdp_send_addrs(); }
RtpsDiscoveryConfig_rch config_

◆ spdp_send_addrs() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::spdp_send_addrs ( const AddrVec addrs)
inline

Definition at line 141 of file RtpsDiscovery.h.

141 { return config_->spdp_send_addrs(addrs); }
RtpsDiscoveryConfig_rch config_

◆ spdp_stun_server_address()

void OpenDDS::RTPS::RtpsDiscovery::spdp_stun_server_address ( const ACE_INET_Addr address)

Definition at line 1082 of file RtpsDiscovery.cpp.

References get_config().

1083 {
1084  get_config()->spdp_stun_server_address(address);
1085 }
RtpsDiscoveryConfig_rch get_config() const

◆ supports_liveliness()

virtual bool OpenDDS::RTPS::RtpsDiscovery::supports_liveliness ( ) const
inlinevirtual

Reimplemented from OpenDDS::DCPS::Discovery.

Definition at line 87 of file RtpsDiscovery.h.

87 { return true; }

◆ ttl() [1/2]

unsigned char OpenDDS::RTPS::RtpsDiscovery::ttl ( void  ) const
inline

Definition at line 122 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::Sedp::init().

122 { return config_->ttl(); }
RtpsDiscoveryConfig_rch config_

◆ ttl() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::ttl ( unsigned char  time_to_live)
inline

Definition at line 123 of file RtpsDiscovery.h.

123 { config_->ttl(time_to_live); }
RtpsDiscoveryConfig_rch config_

◆ update_domain_participant_qos()

bool OpenDDS::RTPS::RtpsDiscovery::update_domain_participant_qos ( DDS::DomainId_t  domain,
const GUID_t participant,
const DDS::DomainParticipantQos qos 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1248 of file RtpsDiscovery.cpp.

References get_part().

1250 {
1251  return get_part(domain, participant)->update_domain_participant_qos(qos);
1252 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ update_publication_locators()

void OpenDDS::RTPS::RtpsDiscovery::update_publication_locators ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t dwId,
const DCPS::TransportLocatorSeq transInfo 
)
virtual

Reimplemented from OpenDDS::DCPS::Discovery.

Definition at line 1361 of file RtpsDiscovery.cpp.

References get_part().

1364 {
1365  get_part(domainId, partId)->update_publication_locators(dwId, transInfo);
1366 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ update_publication_qos()

bool OpenDDS::RTPS::RtpsDiscovery::update_publication_qos ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t dwId,
const DDS::DataWriterQos qos,
const DDS::PublisherQos publisherQos 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1350 of file RtpsDiscovery.cpp.

References get_part().

1356 {
1357  return get_part(domainId, partId)->update_publication_qos(dwId, qos,
1358  publisherQos);
1359 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ update_subscription_locators()

void OpenDDS::RTPS::RtpsDiscovery::update_subscription_locators ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t subId,
const DCPS::TransportLocatorSeq transInfo 
)
virtual

Reimplemented from OpenDDS::DCPS::Discovery.

Definition at line 1416 of file RtpsDiscovery.cpp.

References get_part().

1419 {
1420  get_part(domainId, partId)->update_subscription_locators(subId, transInfo);
1421 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ update_subscription_params()

bool OpenDDS::RTPS::RtpsDiscovery::update_subscription_params ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t subId,
const DDS::StringSeq params 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1410 of file RtpsDiscovery.cpp.

References get_part().

1412 {
1413  return get_part(domainId, partId)->update_subscription_params(subId, params);
1414 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ update_subscription_qos()

bool OpenDDS::RTPS::RtpsDiscovery::update_subscription_qos ( DDS::DomainId_t  domainId,
const GUID_t partId,
const GUID_t drId,
const DDS::DataReaderQos qos,
const DDS::SubscriberQos subQos 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1400 of file RtpsDiscovery.cpp.

References get_part().

1406 {
1407  return get_part(domainId, partId)->update_subscription_qos(drId, qos, subQos);
1408 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const

◆ update_topic_qos()

bool OpenDDS::RTPS::RtpsDiscovery::update_topic_qos ( const GUID_t topicId,
DDS::DomainId_t  domainId,
const GUID_t participantId,
const DDS::TopicQos qos 
)
virtual

Implements OpenDDS::DCPS::Discovery.

Definition at line 1312 of file RtpsDiscovery.cpp.

References get_part().

1314 {
1315  ParticipantHandle part = get_part(domainId, participantId);
1316  if (part) {
1317  return part->update_topic_qos(topicId, qos);
1318  }
1319  return false;
1320 }
ParticipantHandle get_part(const DDS::DomainId_t domain_id, const GUID_t &part_id) const
RcHandle< Spdp > ParticipantHandle
Definition: RtpsDiscovery.h:35

◆ use_ice()

bool OpenDDS::RTPS::RtpsDiscovery::use_ice ( ) const
inline

Definition at line 161 of file RtpsDiscovery.h.

161 { return config_->use_ice(); }
RtpsDiscoveryConfig_rch config_

◆ use_ice_now()

void OpenDDS::RTPS::RtpsDiscovery::use_ice_now ( bool  f)

Definition at line 949 of file RtpsDiscovery.cpp.

References ACE_GUARD, config(), get_config(), participants_, and participants_lock_.

950 {
952  const bool before = config->use_ice();
953  config->use_ice(after);
954 
955  if (before != after) {
957  for (DomainParticipantMap::const_iterator dom_pos = participants_.begin(), dom_limit = participants_.end();
958  dom_pos != dom_limit; ++dom_pos) {
959  for (ParticipantMap::const_iterator part_pos = dom_pos->second.begin(), part_limit = dom_pos->second.end(); part_pos != part_limit; ++part_pos) {
960  part_pos->second->use_ice_now(after);
961  }
962  }
963  }
964 }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
RtpsDiscoveryConfig_rch config() const
OpenDDS::DCPS::RcHandle< RtpsDiscoveryConfig > RtpsDiscoveryConfig_rch
Definition: RtpsDiscovery.h:38
DomainParticipantMap participants_
RtpsDiscoveryConfig_rch get_config() const
ACE_Thread_Mutex participants_lock_

◆ use_rtps_relay()

bool OpenDDS::RTPS::RtpsDiscovery::use_rtps_relay ( ) const
inline

Definition at line 158 of file RtpsDiscovery.h.

158 { return config_->use_rtps_relay(); }
RtpsDiscoveryConfig_rch config_

◆ use_rtps_relay_now()

void OpenDDS::RTPS::RtpsDiscovery::use_rtps_relay_now ( bool  f)

Definition at line 931 of file RtpsDiscovery.cpp.

References ACE_GUARD, config(), get_config(), participants_, and participants_lock_.

932 {
934  const bool before = config->use_rtps_relay();
935  config->use_rtps_relay(after);
936 
937  if (before != after) {
939  for (DomainParticipantMap::const_iterator dom_pos = participants_.begin(), dom_limit = participants_.end();
940  dom_pos != dom_limit; ++dom_pos) {
941  for (ParticipantMap::const_iterator part_pos = dom_pos->second.begin(), part_limit = dom_pos->second.end(); part_pos != part_limit; ++part_pos) {
942  part_pos->second->use_rtps_relay_now(after);
943  }
944  }
945  }
946 }
#define ACE_GUARD(MUTEX, OBJ, LOCK)
RtpsDiscoveryConfig_rch config() const
OpenDDS::DCPS::RcHandle< RtpsDiscoveryConfig > RtpsDiscoveryConfig_rch
Definition: RtpsDiscovery.h:38
DomainParticipantMap participants_
RtpsDiscoveryConfig_rch get_config() const
ACE_Thread_Mutex participants_lock_

◆ use_xtypes() [1/2]

bool OpenDDS::RTPS::RtpsDiscovery::use_xtypes ( ) const
inline

Definition at line 173 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::Sedp::init().

173 { return config_->use_xtypes(); }
RtpsDiscoveryConfig_rch config_

◆ use_xtypes() [2/2]

void OpenDDS::RTPS::RtpsDiscovery::use_xtypes ( RtpsDiscoveryConfig::UseXTypes  val)
inline

Definition at line 174 of file RtpsDiscovery.h.

174 { return config_->use_xtypes(val); }
RtpsDiscoveryConfig_rch config_

◆ use_xtypes_complete()

bool OpenDDS::RTPS::RtpsDiscovery::use_xtypes_complete ( ) const
inline

Definition at line 175 of file RtpsDiscovery.h.

Referenced by OpenDDS::RTPS::Sedp::init().

175 { return config_->use_xtypes_complete(); }
RtpsDiscoveryConfig_rch config_

Friends And Related Function Documentation

◆ ::DDS_TEST

friend class ::DDS_TEST
friend

Definition at line 362 of file RtpsDiscovery.h.

Member Data Documentation

◆ config_

RtpsDiscoveryConfig_rch OpenDDS::RTPS::RtpsDiscovery::config_
private

Definition at line 339 of file RtpsDiscovery.h.

Referenced by add_domain_participant(), generate_participant_guid(), and get_config().

◆ guid_gen_

GuidGenerator OpenDDS::RTPS::RtpsDiscovery::guid_gen_
private

Guids will be unique within this RTPS configuration.

Definition at line 344 of file RtpsDiscovery.h.

Referenced by add_domain_participant(), and generate_participant_guid().

◆ lock_

ACE_Thread_Mutex OpenDDS::RTPS::RtpsDiscovery::lock_
mutableprivate

Definition at line 337 of file RtpsDiscovery.h.

Referenced by add_domain_participant(), generate_participant_guid(), and get_config().

◆ participants_

DomainParticipantMap OpenDDS::RTPS::RtpsDiscovery::participants_
private

◆ participants_lock_

ACE_Thread_Mutex OpenDDS::RTPS::RtpsDiscovery::participants_lock_
mutableprivate

The documentation for this class was generated from the following files: