RTI Connext Micro C API Version 4.2.0
Loading...
Searching...
No Matches
DDS_DiscoveryQosPolicy Struct Reference

<<cert>> Specifies the attributes required to discover participants in the domain. More...

#include <dds_c_domain.h>

Data Fields

struct DDS_StringSeq initial_peers
 Determines the initial list of peers that will be contacted by the Discovery mechanism to send announcements about the presence of this participant.
 
struct DDS_StringSeq enabled_transports
 The transports available for use by the Discovery mechanism.
 
struct DDS_DiscoveryComponent discovery
 The name of the discovery plugin that will be used to create a discovery plugin for this DDS_DomainParticipant.
 
DDS_Boolean accept_unknown_peers
 Whether to accept a new participant that is not in the initial peer list.
 
DDS_Boolean enable_participant_discovery_by_name
 Enable Participant discovery by name.
 
DDS_Boolean enable_endpoint_discovery_queue
 Enable the endpoint discovery queue and queue endpoint discovery messages if there are no resources to assert the endpoint at the time of discovery.
 

Detailed Description

<<cert>> Specifies the attributes required to discover participants in the domain.

Entity:
DDS_DomainParticipant
Properties:
RxO = N/A
Changeable = NO

Usage

This extended Qos is used to define how participants find each other on a network.

Field Documentation

◆ initial_peers

struct DDS_StringSeq DDS_DiscoveryQosPolicy::initial_peers

Determines the initial list of peers that will be contacted by the Discovery mechanism to send announcements about the presence of this participant.

If there is a remote peer DDS_DomainParticipant such as is described this list, it will become aware of this participant and will engage in the Discovery protocol to exchange meta-data with this participant.

Each element of this list must be a peer descriptor in the proper format.

[default] Empty sequence

[range] Sequence of arbitrary length.

◆ enabled_transports

struct DDS_StringSeq DDS_DiscoveryQosPolicy::enabled_transports

The transports available for use by the Discovery mechanism.

Only these transports can be used by the discovery mechanism to send meta-traffic via the builtin endpoints (built-in DDS_DataReader and DDS_DataWriter).

Also determines the unicast addresses on which the Discovery mechanism will listen for meta-traffic. These along with the domain_id and participant_id determine the unicast locators on which the Discovery mechanism can receive meta-data.

The memory for the strings in this sequence is managed according to the conventions described in Conventions. In particular, be careful to avoid a situation in which RTI Connext DDS Micro allocates a string on your behalf and you then reuse that string in such a way that RTI Connext DDS Micro believes it to have more memory allocated to it than it actually does.

[default] Empty sequence.

When an empty sequence is passed to DDS_DomainParticipantFactory_create_participant in the DDS_DomainParticipantQos, the domain participant will automatically add the following locators to listen for discovery traffic on: "_udp://", "_udp://127.0.0.1", and "_udp://239.255.0".

[range] Sequence of non-null,non-empty strings.

◆ discovery

struct DDS_DiscoveryComponent DDS_DiscoveryQosPolicy::discovery

The name of the discovery plugin that will be used to create a discovery plugin for this DDS_DomainParticipant.

The DDS_DomainParticipantFactory will search through a list of registered discovery plugins. If it finds a registered discovery factory with a name matching this factory name, it will use that discovery plugin to create a new instance of the discovery plugin and register the plugin with the DDS_DomainParticipant.

If it does not find a registered discovery factory with this name, it will return DDS_RETCODE_PRECONDITION_NOT_MET

Precondition
One or more discovery plugins must have been previously registered with the DDS_DomainParticipantFactory, each with an associated name.

◆ accept_unknown_peers

DDS_Boolean DDS_DiscoveryQosPolicy::accept_unknown_peers

Whether to accept a new participant that is not in the initial peer list.

If DDS_BOOLEAN_FALSE, the participant will only communicate with those in the initial peer list

If DDS_BOOLEAN_TRUE, the participant will also communicate with all discovered remote participants.

[default] DDS_BOOLEAN_TRUE

◆ enable_participant_discovery_by_name

DDS_Boolean DDS_DiscoveryQosPolicy::enable_participant_discovery_by_name

Enable Participant discovery by name.

If DDS_BOOLEAN_FALSE, a DDS_DomainParticipant is only identified by its GUID.

If DDS_BOOLEAN_TRUE, a DDS_DomainParticipant is identified by its DDS_DomainParticipantQos::participant_name. Thus, each DDS_DomainParticipant in a domain must be uniquely in the DDS domain. Failure to uniquely name each DDS_DomainParticipant may result in undefined behavior.

Note that DDS_DomainParticipantQos::participant_name cannot be empty when set to DDS_BOOLEAN_TRUE.

[default] DDS_BOOLEAN_FALSE

◆ enable_endpoint_discovery_queue

DDS_Boolean DDS_DiscoveryQosPolicy::enable_endpoint_discovery_queue

Enable the endpoint discovery queue and queue endpoint discovery messages if there are no resources to assert the endpoint at the time of discovery.

When a remote DDS_DataReader or DDS_DataWriter is discovered, the discovery information is saved, and the discovered entity is matched with local endpoints.

However, if there are insufficient resources to save the information or perform the matching, the discovery message is discarded by default. That is, all information about the discovered endpoint is lost, even if resources are later freed up.

This behavior can be changed by setting this value to DDS_BOOLEAN_TRUE. If there are insufficient resources to store the discovery information, the message is queued and processed when resources becomes available.

Discovery messages that are queued are queued until the DDS_DomainParticipant that published the discovery messages is no longer available.

[default] DDS_BOOLEAN_FALSE