Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 16 additions & 1 deletion code/ProDDSCodeTester.cpp
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
#include <cstdint>

#include <fastdds/dds/domain/qos/DomainParticipantQos.hpp>
#include <fastdds/dds/publisher/qos/DataWriterQos.hpp>
#include <fastdds/rtps/transport/ethernet/EthernetTransportDescriptor.hpp>
#include <fastdds/rtps/transport/low-bandwidth/PayloadCompressionTransportDescriptor.hpp>
#include <fastdds/rtps/transport/low-bandwidth/HeaderReductionTransportDescriptor.hpp>
#include <fastdds/rtps/transport/low-bandwidth/PayloadCompressionTransportDescriptor.hpp>
#include <fastdds/rtps/transport/udp_tsn/TSN_UDPv4TransportDescriptor.hpp>
#include <fastdds/rtps/transport/udp_tsn/UDPPriorityMappings.hpp>

Expand Down Expand Up @@ -451,3 +452,17 @@ void rpcdds_custom_scheduling_examples()
};
//!--
}

void dds_domain_examples_pro()
{
{
// CONTENT_FILTERING_ON_LATE_JOINERS_PROPERTY
DataWriterQos wqos;

// Enable content filtering on late joiners for this DataWriter
wqos.properties().properties().emplace_back(
"fastdds.content_filtering_on_late_joiners",
"true");
//!--
}
}
23 changes: 23 additions & 0 deletions code/ProXMLTester.xml
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,29 @@
</profiles>
</dds>
<-->
<!--><-->

<!-->CONTENT_FILTERING_ON_LATE_JOINERS_PROPERTY<-->
<!--
<?xml version="1.0" encoding="UTF-8" ?>
<dds>
<profiles xmlns="http://www.eprosima.com">
-->
<data_writer profile_name="cft_on_late_joiners_xml_profile">
<propertiesPolicy>
<properties>
<!-- Enable content filtering on late joiners -->
<property>
<name>fastdds.content_filtering_on_late_joiners</name>
<value>true</value>
</property>
</properties>
</propertiesPolicy>
</data_writer>
<!-->
</profiles>
</dds>
<-->
<!--><-->

</profiles>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,41 @@ Publications made after the updated discovery information is received will use t

If some critical application considers this race condition issue unbearable, filtering on the writer side
can be disabled by setting the maximum value on |WriterResourceLimitsQos::reader_filters_allocation-api| to 0.

.. _dds_layer_topic_contentFilteredTopic_writer_side_late_joiners:

Writer side filtering on late joiners |Pro|
-------------------------------------------

By default, when a late joiner DataReader is discovered (non-volatile durability scenario), the DataWriter will not
apply the filter for that DataReader on historical samples.
This means that the late joiner DataReader will receive all historical samples, even those that would not match its
filter, which could cause performance degradation on resource-limited systems.

It is possible however to configure a DataWriter to perform writer-side filtering on late joiners by setting the
|DataWriterQos| property ``fastdds.content_filtering_on_late_joiners`` to ``true``.

.. list-table::
:header-rows: 1
:align: left

* - PropertyPolicyQos name
- PropertyPolicyQos value
- Default value
* - ``"fastdds.content_filtering_on_late_joiners"``
- ``bool``
- ``false``

.. tab-set-code::

.. literalinclude:: /../code/ProDDSCodeTester.cpp
:language: c++
:start-after: // CONTENT_FILTERING_ON_LATE_JOINERS_PROPERTY
:end-before: //!--
:dedent: 8

.. literalinclude:: /../code/ProXMLTester.xml
:language: xml
:start-after: <!-->CONTENT_FILTERING_ON_LATE_JOINERS_PROPERTY<-->
:end-before: <!--><-->
:lines: 2-4,6-16,18-19
Loading