19.3 QoS Profiles

A QoS Profile groups a set of related QoS policies, by entity (e.g., <datawriter_qos>), identified by a name. For example:

<qos_profile name="StrictReliableCommunicationProfile">
	<datawriter_qos>
		<history>
			<kind>KEEP_ALL_HISTORY_QOS</kind>
		</history>
		<reliability>
			<kind>RELIABLE_RELIABILITY_QOS</kind>
		</reliability> 
	</datawriter_qos>
	<datareader_qos>
		<history>
			<kind>KEEP_ALL_HISTORY_QOS</kind>
		</history>
		<reliability>
			<kind>RELIABLE_RELIABILITY_QOS</kind>
		</reliability>
	</datareader_qos>
</qos_profile>

Duplicate QoS profiles are not allowed. To overwrite a QoS profile, use 19.3.3 QoS Profile Inheritance and Composition.

There are functions that allow you to create Entities using profiles, such as create_participant_with_profile() (9.3.1 Creating a DomainParticipant), create_topic_with_profile() (5.1.1 Creating Topics), etc.

If you create an entity using a profile without a QoS definition or an inherited QoS definition (see 19.3.3 QoS Profile Inheritance and Composition) for that class of entity, Connext DDS uses the default QoS.

Example 1:

<qos_profile name=
"BatchStrictReliableCommunicationProfile" 
base_name="StrictReliableCommunicationProfile">
    <datawriter_qos>
        <batch>
           <enable>true</enable>
        </batch>
   </datawriter_qos>
</qos_profile>

The DataReader QoS value in the profile BatchStrictReliableCommunicationProfile is inherited from the profile StrictReliableCommunicationProfile.

Example 2:

<qos_profile name="BatchProfile">
    <datawriter_qos>
        <batch>
           <enable>true</enable>
        </batch>
   </datawriter_qos>
</qos_profile>

The DataReader QoS value in the profile BatchProfile is the default Connext DDS QoS.

© 2020 RTI