You are here: Part 3: Advanced Concepts > Built-In Topics > Built-in DataReaders

Built-in DataReaders

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).

Participant Built-in Topic’s Data Type (DDS_ParticipantBuiltinTopicData)

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

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_
endpoints

Bitmap set by the discovery plugins.

Each bit in this field indicates a built-in endpoint present for discovery.

DDS_LocatorSeq

default_unicast_
locators

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_
version

Vendor-specific parameter. The current version of Connext DDS.

DDS_EntityNameQosPolicy

participant_
name

Name and role_name assigned to the DomainParticipant. See ENTITY_NAME QosPolicy (DDS Extension).

DDS_DomainId_t

domain_id

Domain ID associated with the discovered participant.

DDS_TransportInfoSeq

transport_
info

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 ).

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.

 

Publication Built-in Topic’s Data Type (DDS_PublicationBuiltinTopicData)

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_
service

DDS_DeadlineQosPolicy

deadline

DDS_DestinationOrder-QosPolicy

destination_
order

DDS_LatencyBudget-QosPolicy

latency_
budget

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_
strength

DDS_DestinationOrder-QosPolicy

destination_
order

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_
locators

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

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.

See LOCATOR_FILTER QoS Policy (DDS Extension).

DDS_Boolean

disable_positive_
acks

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).

 

Subscription Built-in Topic’s Data Type (DDS_SubscriptionBuiltinTopicData)

Type

Field

Description

DDS_BuiltinTopicKey_t

key

Key to distinguish the discovered DataReader.

DDS_BuiltinTopicKey_t

participant_
key

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_
DestinationOrderQosPolicy

destination_
order

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_
TimeBasedFilterQosPolicy

time_based_
filter

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_
consistency

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

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_
locators

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_
locators

Custom multicast locators that the endpoint can specify.

DDS_ContentFilter-Property_t

content_filter_
property

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

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_Boolean

disable_positive_
acks

Vendor specific parameter. Determines whether matching DataReaders send positive acknowledgements for reliability.

DDS_EntityNameQosPolicy

subscription_
name

Name and role_name assigned to the DataReader. See ENTITY_NAME QosPolicy (DDS Extension).

 

Topic Built-in Topic’s Data Type (DDS_TopicBuiltinTopicData)

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_
order

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.

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.

QoS of Built-in Subscriber and DataReader

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.
[participant/publication/subscription]_reader_resource_limits.max_samples

max_instances = domainParticipantQos.resource_limits.
[remote_writer/reader/participant]_allocation.max_count

max_samples_per_instance = 1

TimeBasedFilter

minimum_separation = 0

TopicData

value = empty sequence

UserData

value = empty sequence

Note:

The DDS_TopicBuiltinTopicData built-in topic (described in ) 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.

© 2016 RTI