@@ -78,38 +78,23 @@ Notice that not setting such QoS will not affect the correct functionality of th
7878
7979Topic-name endpoint profile lookup
8080-----------------------------------
81- When the XML Participant creates a DataWriter or DataReader for a topic, it looks for a loaded XML profile
82- whose name matches the topic name.
83- If a matching profile is found, the endpoint is configured using that profile's QoS, giving the user full
81+ When the XML Participant creates a DataWriter or DataReader for a topic, it looks for a loaded XML ``data_writer ``
82+ or ``data_reader `` profile to configure that endpoint.
83+ By default, the |ddsrouter | looks for a profile **whose name matches the topic name **.
84+ If a matching profile is found, the endpoint is configured using that profile's QoS, giving the user
8485control over fields such as history, memory policy, transport, etc.
8586If no matching profile exists, the endpoint falls back to default QoS with values derived from the YAML configuration.
8687
87- By default, when a matching XML profile is found, the YAML QoS configuration is ignored for that endpoint.
88- This behaviour can be changed by setting the xml-override tag to true in the participant configuration.
89- When enabled, the YAML QoS values (durability, reliability, ownership, history) will override those from the XML profile.
90-
9188.. note ::
9289
93- Certain QoS are always enforced by the |ddsrouter | regardless of the XML profile or the `` xml-override `` setting :
90+ Certain QoS are always enforced by the |ddsrouter | regardless of the XML profile:
9491 deadline on DataWriters (set to minimum so it matches any reader),
9592 ``autodispose_unregistered_instances `` on DataWriters (set to ``false `` to preserve dispose/unregister forwarding semantics),
9693 and ``expects_inline_qos `` on DataReaders for keyed topics.
9794
9895The following example loads a profile named ``my_topic `` that will be automatically applied when creating
9996endpoints for a topic of that name:
10097
101-
102- **YAML **
103-
104- .. code-block :: yaml
105-
106- - name : xml_participant
107- kind : xml
108- xml-override : true
109-
110-
111- **XML **
112-
11398.. code-block :: xml
11499
115100 <dds >
@@ -123,6 +108,37 @@ endpoints for a topic of that name:
123108 </profiles >
124109 </dds >
125110
111+ Selecting a profile explicitly
112+ """""""""""""""""""""""""""""""
113+
114+ Instead of relying on the topic name, a specific profile can be selected for a topic with the
115+ ``endpoint-profile-name `` tag under that topic's QoS configuration.
116+ When set, the |ddsrouter | looks up the XML profile with that name instead of the topic name:
117+
118+ .. code-block :: yaml
119+
120+ topics :
121+ - name : " rt/chatter"
122+ qos :
123+ endpoint-profile-name : " my_reader_profile"
124+
125+ Overriding profile QoS from the YAML configuration
126+ """""""""""""""""""""""""""""""""""""""""""""""""""
127+
128+ When a matching XML profile is applied, the QoS fields explicitly set by the user in the YAML
129+ configuration take precedence over the values in the XML profile.
130+ This behavior is controlled by the ``endpoint-qos-mode `` participant tag, which accepts two values:
131+
132+ * ``xml-overridable `` *(default) *: the XML profile is applied first, and any QoS field explicitly set in
133+ the YAML configuration overrides the corresponding value from the profile.
134+ * ``xml-standalone ``: the XML profile is applied verbatim; YAML QoS does not override it.
135+
136+ .. code-block :: yaml
137+
138+ - name : xml_participant
139+ kind : xml
140+ endpoint-qos-mode : xml-standalone
141+
126142
127143 Repeater
128144--------
0 commit comments