<?xml version="1.0" encoding="UTF-8"?>

<!-- 
 (c) Copyright, Real-Time Innovations, $Date: 2012/04/25 16:07:27 $.
 All rights reserved.
 Permission to modify and use for internal purposes granted.
 This software is provided "as is", without warranty, express or implied.
-->

<!-- ===================================================================== -->
<!-- Decoupled Trasnports QoS Profile                                      -->
<!-- ===================================================================== -->

<!--
Your XML editor may be able to provide validation and auto-completion services
as you type. To enable these services, replace the opening tag of this
document with the following, and update the absolute path as appropriate for
your installation:
 
<dds xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:noNamespaceSchemaLocation="/my_NDDSHOME_directory/resource/qos_profiles_myVersion/schema/rti_dds_qos_profiles.xsd">-->


<dds>
  <qos_library name="DefaultLibrary">
    <!-- 
      The Decoupled Trasnports profile demostrates how to configure your application to 
      use different transports for discovery data traffic and user data traffic. 
      The transports used are Shared memory (for discovery data) and UDPv4 (for user data), 
      but other builtin or custom transports can be substituted and used
      in a similar fashion. 
      -->
    <qos_profile name="DefaultProfile" is_default_qos="true">

      <!-- DATAWRITER QOS -->
      <datawriter_qos>
        <reliability>
          <kind>RELIABLE_RELIABILITY_QOS</kind>
          <max_blocking_time>
            <sec>60</sec>
          </max_blocking_time>
        </reliability>
        <history>
          <kind>KEEP_ALL_HISTORY_QOS</kind>
        </history>

        <!-- 
        The tranport_selection.enabled_transports QoS setting is a sequence of 
        transport aliases that specifies which of the instances that are installed
        with the DomainParticipant are available for use by this entity. 
        If left empty, all enabled transports will be used.
        -->
        <transport_selection>
          <enabled_transports>
            <element>udpv4</element>
          </enabled_transports>
        </transport_selection>
      </datawriter_qos>

      <!-- DATAREADER QOS -->
      <datareader_qos>
        <reliability>
          <kind>RELIABLE_RELIABILITY_QOS</kind>
        </reliability>
        <history>
          <kind>KEEP_ALL_HISTORY_QOS</kind>
        </history>

        <!-- 
        The tranport_selection.enabled_transports QoS setting is a sequence of 
        transport aliases that specifies which of the instances that are installed
        with the DomainParticipant are available for use by this entity. 
        If left empty, all enabled transports will be used.
        -->
        <transport_selection>
          <enabled_transports>
            <element>udpv4</element>
          </enabled_transports>
        </transport_selection>
      </datareader_qos>

      <!-- PARTICIPANT QOS -->
      <participant_qos>
        <participant_name>
          <name>RTI Example (Multiple Transports)</name>
        </participant_name>

        <!--
        By default transport_builtin.mask is set to UDPv4 | SHMEM, make sure that
        whatever transport that you want to use is enabled in this mask
        -->
        <transport_builtin>
          <mask>MASK_DEFAULT</mask>
        </transport_builtin>

        <!--
        The discovery.enabled_tranports works the same way as the DataWriter's and 
        DataReader's enabled_transports setting. It is a sequence of transport aliases
        that are enabled in the DomainParticipant. This value will decide which transports
        are used for discovery data. If left empty, all enabled transports will be used.
        -->
        <discovery>
          <enabled_transports>
            <element>shmem</element>
          </enabled_transports>
        </discovery>

        <property>
          <value>
            <element>
              <name>dds.transport.UDPv4.builtin.ignore_loopback_interface</name>
              <value>0</value>
            </element>
          </value>
        </property>

      </participant_qos>
    </qos_profile>
  </qos_library>
</dds>