Built-in DataReaders belong to a built-in Subscriber, which can be retrieved by using the DomainParticipant’s get_builtin_subscriber() operation. You can retrieve the built-in DataReaders by using the Subscriber’s lookup_datareader() operation, which takes the Topic name as a parameter. The built-in DataReader is created when lookup_datareader() is called on a built-in topic for the first time.
To conserve memory, built-in Subscribers and DataReaders are created only if and when you look them up. Therefore, if you do not want to miss any built-in data, you should look up the built-in readers before the DomainParticipant is enabled.
The following tables describe the built-in topics and their data types. The USER_DATA QosPolicy, TOPIC_DATA QosPolicy and GROUP_DATA QosPolicy are included as part of the built-in data type and are not used by Connext DDS. Therefore, you can use them to send application-specific information.
Built-in topics can be used in conjunction with the ignore_*() operations to ignore certain entities (see Restricting Communication—Ignoring Entities).
Type |
Field |
Description |
DDS_BuiltinTopicKey |
key |
Key to distinguish the discovered DomainParticipant |
DDS_UserDataQosPolicy |
user_data |
Data that can be set when the related DomainParticipant is created (via the USER_DATA QosPolicy) and that the application may use as it wishes (e.g., to perform some security checking). |
DDS_PropertyQosPolicy |
property |
Pairs of names/values to be stored with the DomainParticipant. See PROPERTY QosPolicy (DDS Extension) . The usage is strictly application-dependent. |
DDS_ProtocolVersion_t |
rtps_protocol_ |
Version number of the RTPS wire protocol used. |
DDS_VendorId_t |
rtps_vendor_id |
ID of vendor implementing the RTPS wire protocol. |
DDS_UnsignedLong |
dds_builtin_ |
Bitmap set by the discovery plugins. Each bit in this field indicates a built-in endpoint present for discovery. |
DDS_LocatorSeq |
default_unicast_ |
If the TransportUnicastQosPolicy is not specified when a DataWriter/DataReader is created, the unicast_locators in the corresponding Publication/Subscription built-in topic data will be empty. When the unicast_locators in the Publication/SubscriptionBuiltinTopicData is empty, the default_unicast_locators in the corresponding Participant Builtin Topic Data is assumed. If default_unicast_locators is empty, it defaults to DomainParticipantQos.default_unicast. |
DDS_ProductVersion_t |
product_ |
Vendor-specific parameter. The current version of Connext DDS. |
DDS_EntityNameQosPolicy |
participant_ |
Name and role_name assigned to the DomainParticipant. See ENTITY_NAME QosPolicy (DDS Extension). |
DDS_DomainId_t |
Domain ID associated with the discovered participant. |
|
DDS_TransportInfoSeq |
transport_ |
A sequence of DDS_TransportInfo_t containing information about each of the installed transports of the discovered DomainParticipant. A DDS_TransportInfo_t structure contains the class_id and message_size_max for a single transport. The maximum length of this sequence is controlled by the DOMAIN_PARTICIPANT_RESOURCE_LIMITS QosPolicy (DDS Extension) transport_info_list_max_length (see DDS_DomainParticipantResourceLimitsQosPolicy ). Connext DDS uses the transport information propagated via discovery to detect potential misconfigurations in a Connext DDS distributed system. If two DomainParticipants that discover each other have one common transport with different values for message_size_max, Connext DDS prints a warning message about that condition. |
DDS_ServiceQosPolicy |
service |
Service associated with the discovered DomainParticipant. |
Type |
Field |
Description |
DDS_BuiltinTopicKey_t |
key |
Key to distinguish the discovered DataWriter |
DDS_BuiltinTopicKey_t |
participant_key |
Key to distinguish the participant to which the discovered DataWriter belongs |
DDS_String |
topic_name |
Topic name of the discovered DataWriter |
DDS_String |
type_name |
Type name attached to the topic of the discovered DataWriter |
DDS_DurabilityQosPolicy |
durability |
QosPolicies of the discovered DataWriter |
DDS_DurabilityService-QosPolicy |
durability_ |
|
DDS_DeadlineQosPolicy |
deadline |
|
DDS_DestinationOrder-QosPolicy |
destination_ |
|
DDS_LatencyBudget-QosPolicy |
latency_ |
|
DDS_LivelinessQosPolicy |
liveliness |
|
DDS_ReliabilityQosPolicy |
reliability |
|
DDS_LifespanQosPolicy |
lifespan |
|
DDS_UserDataQosPolicy |
user_data |
Data that can be set when the DataWriter is created (via the USER_DATA QosPolicy) and that the application may use as it wishes. |
DDS_OwnershipQosPolicy |
ownership |
QosPolicies of the discovered DataWriter |
DDS_OwnershipStrength-QosPolicy |
ownership_ |
|
DDS_DestinationOrder-QosPolicy |
destination_ |
|
DDS_PresentationQosPolicy |
presentation |
|
DDS_PartitionQosPolicy |
partition |
Name of the partition, set in the PARTITION QosPolicy for the publisher to which the discovered DataWriter belongs |
DDS_TopicDataQosPolicy |
topic_data |
Data that can be set when the Topic (with which the discovered DataWriter is associated) is created (via the TOPIC_DATA QosPolicy) and that the application may use as it wishes. |
DDS_GroupDataQosPolicy |
group_data |
Data that can be set when the Publisher to which the discovered DataWriter belongs is created (via the GROUP_DATA QosPolicy) and that the application may use as it wishes. |
DDS_TypeObject * |
type |
Describes the type of the remote DataReader. See the API Reference HTML documentation. |
DDS_TypeCode * |
type_code |
Type code information about this Topic. See Using Generated Types without Connext DDS (Standalone) . |
DDS_BuiltinTopicKey_t |
publisher_key |
The key of the Publisher to which the DataWriter belongs. |
DDS_PropertyQosPolicy |
property |
Properties (pairs of names/values) assigned to the corresponding DataWriter. Usage is strictly application-dependent. See PROPERTY QosPolicy (DDS Extension) . |
DDS_LocatorSeq |
unicast_ |
If the TransportUnicastQosPolicy is not specified when a DataWriter/DataReader is created, the unicast_locators in the corresponding Publication/Subscription built-in topic data will be empty. When the unicast_locators in the Publication/SubscriptionBuiltinTopicData is empty, the default_unicast_locators in the corresponding Participant Builtin Topic Data is assumed. |
DDS_GUID_t |
virtual_guid |
Virtual GUID for the corresponding DataWriter. For more information, see Durability and Persistence Based on Virtual GUIDs. |
DDS_ServiceQosPolicy |
service |
Service associated with the discovered DataWriter. |
DDS_ProtocolVersion_t |
rtps_protocol_ |
Version number of the RTPS wire protocol in use. |
DDS_VendorId_t |
rtps_vendor_id |
ID of the vendor implementing the RTPS wire protocol. |
DDS_Product_Version_t |
product_version |
Vendor-specific value. For RTI, this is the current version of Connext DDS. |
DDS_LocatorFilterQosPolicy |
locator_filter |
When the MULTI_CHANNEL QosPolicy (DDS Extension) is used on the discovered DataWriter, the locator_filter contains the sequence of LocatorFilters in that policy. There is one LocatorFilter per DataWriter channel. A channel is defined by a filter expression and a sequence of multicast locators. |
DDS_Boolean |
disable_positive_ |
Vendor specific parameter. Determines whether matching DataReaders send positive acknowledgements for reliability. |
DDS_EntityNameQosPolicy |
publication_name |
Name and role_name assigned to the DataWriter. See ENTITY_NAME QosPolicy (DDS Extension). |
Type |
Field |
Description |
DDS_BuiltinTopicKey_t |
key |
Key to distinguish the discovered DataReader. |
DDS_BuiltinTopicKey_t |
participant_ |
Key to distinguish the participant to which the discovered DataReader belongs. |
char * |
topic_name |
Topic name of the discovered DataReader. |
char * |
type_name |
Type name attached to the Topic of the discovered DataReader. |
DDS_DurabilityQosPolicy |
durability |
QosPolicies of the discovered DataReader |
DDS_DeadlineQosPolicy |
deadline |
|
DDS_LatencyBudget-QosPolicy |
latency_budget |
|
DDS_LivelinessQosPolicy |
liveliness |
|
DDS_ReliabilityQosPolicy |
reliability |
|
DDS_OwnershipQosPolicy |
ownership |
|
DDS_ |
destination_ |
|
DDS_UserDataQosPolicy |
user_data |
Data that can be set when the DataReader is created (via the USER_DATA QosPolicy) and that the application may use as it wishes. |
DDS_ |
time_based_ |
QosPolicies of the discovered DataReader |
DDS_PresentationQosPolicy |
presentation |
|
DDS_PartitionQosPolicy |
partition |
Name of the partition, set in the PARTITION QosPolicy for the Subscriber to which the discovered DataReader belongs. |
DDS_TopicDataQosPolicy |
topic_data |
Data that can be set when the Topic to which the discovered DataReader belongs is created (via the TOPIC_DATA QosPolicy) and that the application may use as it wishes. |
DDS_GroupDataQosPolicy |
group_data |
Data that can be set when the Publisher to which the discovered DataReader belongs is created (via the GROUP_DATA QosPolicy) and that the application may use as it wishes. |
DDS_TypeObject * |
type |
Describes the type of the remote DataReader. See the API Reference HTML documentation. |
DDS_TypeConsistencyEnforcementQosPolicy |
type_ |
Indicates the type-consistency requirements of the remote DataReader. See TYPE_CONSISTENCY_ENFORCEMENT QosPolicy and the RTI Connext DDS Core Libraries Getting Started Guide Addendum for Extensible Types. |
DDS_TypeCode * |
type_code |
Type code information about this Topic. See Using Generated Types without Connext DDS (Standalone) . |
DDS_BuiltinTopicKey_t |
subscriber_ |
Key of the Subscriber to which the DataReader belongs. |
DDS_PropertyQosPolicy |
property |
Properties (pairs of names/values) assigned to the corresponding DataReader. Usage is strictly application-dependent. See PROPERTY QosPolicy (DDS Extension) . |
DDS_LocatorSeq |
unicast_ |
If the TransportUnicastQosPolicy is not specified when a DataWriter/DataReader is created, the unicast_locators in the corresponding Publication/Subscription builtin topic data will be empty. When the unicast_locators in the Publication/SubscriptionBuiltinTopicData is empty, the default_unicast_locators in the corresponding Participant Builtin Topic Data is assumed. |
DDS_LocatorSeq |
multicast_ |
Custom multicast locators that the endpoint can specify. |
DDS_ContentFilter-Property_t |
content_filter_ |
Provides all the required information to enable content filtering on the writer side. |
DDS_GUID_t |
virtual_guid |
Virtual GUID for the corresponding DataReader. For more information, see Durability and Persistence Based on Virtual GUIDs. |
DDS_ServiceQosPolicy |
service |
Service associated with the discovered DataReader. |
DDS_ProtocolVersion_t |
rtps_protocol_ |
Version number of the RTPS wire protocol in use. |
DDS_VendorId_t |
rtps_vendor_ |
ID of the vendor implementing the RTPS wire protocol. |
DDS_Product_Version_t |
product_ |
Vendor-specific value. For RTI, this is the current version of Connext DDS. |
DDS_Boolean |
disable_positive_ |
Vendor specific parameter. Determines whether matching DataReaders send positive acknowledgements for reliability. |
DDS_EntityNameQosPolicy |
subscription_ |
Name and role_name assigned to the DataReader. See ENTITY_NAME QosPolicy (DDS Extension). |
Type |
Field |
Description |
DDS_BuiltinTopicKey_t |
key |
Key to distinguish the discovered Topic |
DDS_String |
name |
Topic name |
DDS_String |
type_name |
type name attached to the Topic |
DDS_DurabilityQosPolicy |
durability |
QosPolicy of the discovered Topic |
DDS_DurabilityServiceQosPolicy |
durability_service |
|
DDS_DeadlineQosPolicy |
deadline |
|
DDS_LatencyBudgetQosPolicy |
latency_budget |
|
DDS_LivelinessQosPolicy |
liveliness |
|
DDS_ReliabilityQosPolicy |
reliability |
|
DDS_TransportPriorityQosPolicy |
transport_priority |
|
DDS_LifespanQosPolicy |
lifespan |
|
DDS_DestinationOrderQosPolicy |
destination_ |
|
DDS_HistoryQosPolicy |
history |
|
DDS_ResourceLimitsQosPolicy |
resource_limits |
|
DDS_OwnershipQosPolicy |
ownership |
|
DDS_TopicDataQosPolicy |
topic_data |
Data that can be set when the Topic to which the discovered DataReader belongs is created (via the TOPIC_DATA QosPolicy) and that the application may use as it wishes. |
QoS of Built-in Subscriber and DataReader lists the QoS of the built-in Subscriber and DataReader created for accessing discovery data. These are provided for your reference only; they cannot be changed.
QosPolicy |
Value |
Deadline |
period = infinite |
DestinationOrder |
kind = BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS |
Durability |
kind = TRANSIENT_LOCAL_DURABILITY_QOS |
EntityFactory |
autoenable_created_entities = TRUE |
GroupData |
value = empty sequence |
History |
kind = KEEP_LAST_HISTORY_QOS depth = 1 |
LatencyBudget |
duration = 0 |
Liveliness |
kind = AUTOMATIC_LIVELINESS_QOS lease_duration = infinite |
Ownership |
kind = SHARED_OWNERSHIP_QOS |
Ownership Strength |
value = 0 |
Presentation |
access_scope = TOPIC_PRESENTATION_QOS coherent_access = FALSE ordered_access = FALSE |
Partition |
name = empty sequence |
ReaderDataLifecycle |
autopurge_nowriter_samples_delay = infinite |
Reliability |
kind = RELIABLE_RELIABILITY_QOS max_blocking_time is irrelevant for the DataReader |
ResourceLimits |
Depends on setting of DomainParticipantResourceLimitsQosPolicy and DiscoveryConfigQosPolicy in DomainParticipantQos: max_samples = domainParticipantQos.discovery_config. max_instances = domainParticipantQos.resource_limits. max_samples_per_instance = 1 |
TimeBasedFilter |
minimum_separation = 0 |
TopicData |
value = empty sequence |
UserData |
value = empty sequence |
The DDS_TopicBuiltinTopicData built-in topic (described in Topic Built-in Topic’s Data Type (DDS_TopicBuiltinTopicData) ) is meant to convey information about discovered Topics. However, this topic's data is not sent separately and therefore a DataReader for DDS_TopicBuiltinTopicData will not receive any data. Instead, DDS_TopicBuiltinTopicData data is included in the information carried by the built-in topics for Publications and Subscriptions (DDS_PublicationBuiltinTopicData and DDS_SubscriptionBuiltinTopicData) and can be accessed with their built-in DataReaders.
© 2018 RTI