You are here: Part 2: Core Concepts > Topics > ContentFilteredTopics > Where Filtering is Applied—Publishing vs. Subscribing Side

Where Filtering is Applied—Publishing vs. Subscribing Side

Filtering may be performed on either side of the distributed application. (The DataWriter obtains the filter expression and parameters from the DataReader during discovery.)

When batching is enabled, content filtering is always done on the reader side.

Connext DDS also supports network-switch filtering for multi-channel DataWriters (see Multi-channel DataWriters).

A DataWriter will automatically filter DDS data samples for a DataReader if all of the following are true; otherwise filtering is performed by the DataReader.

  1. The DataWriter is filtering for no more than writer_resource_limits.max_remote_reader_filters DataReaders at the same time.
  2. The DataReader is not subscribing to data using multicast.
  3. There are no more than 4 matching DataReaders in the same locator (see Peer Descriptor Format).
  4. The DataWriter has infinite liveliness. (See LIVELINESS QosPolicy.)
  5. The DataWriter is not using an Asynchronous Publisher. (That is, the DataWriter’s PUBLISH_MODE QosPolicy (DDS Extension) kind is set to DDS_SYNCHRONOUS_PUBLISHER_MODE_QOS.) See Note below.
  6. If you are using a custom filter (not the default one), it must be registered in the DomainParticipant of the DataWriter and the DataReader.
  7. The DataWriter is not configured to use batching.

Notes:

© 2016 RTI