RTI Connext .NET API (legacy)  Version 6.1.2
DDS::TopicQueryDispatchQosPolicy Struct Reference

Configures the ability of a DDS::DataWriter to publish samples in response to a DDS::TopicQuery. More...

#include <managed_infrastructure.h>

Static Public Member Functions

static System::String ^ get_topicquerydispatch_qos_policy_name ()
 Stringified human-readable name for DDS::TopicQueryDispatchQosPolicy. More...
 

Public Attributes

Duration_t publication_period
 Sets the periodic interval at which samples are published. More...
 
System::Int32 samples_per_period
 Sets the maximum number of samples to publish in each publication_period. More...
 

Properties

System::Boolean enable [get, set]
 Allows this writer to dispatch TopicQueries. More...
 

Detailed Description

Configures the ability of a DDS::DataWriter to publish samples in response to a DDS::TopicQuery.

Enables the ability of a DDS::DataWriter to publish historical samples upon reception of a DDS::TopicQuery and how often they are published.

Since a TopicQuery selects previously written samples, the DataWriter must have a DDS::DurabilityQosPolicy::kind different from VOLATILE_DURABILITY_QOS. Also, DDS::ReliabilityQosPolicy::kind must be set to DDS::ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS.

Only samples that fall within the DDS::DurabilityQosPolicy::writer_depth for an instance are evaluated against the TopicQuery filter. While the DataWriter is waiting for acknowledgements from one or more DataReaders, there may temporarily be more than DDS::DurabilityQosPolicy::writer_depth samples per instance in the DataWriter's queue if the DDS::HistoryQosPolicy::depth is set to a higher value than DDS::DurabilityQosPolicy::writer_depth. Those additional samples past DDS::DurabilityQosPolicy::writer_depth are not eligible to be sent in response to the TopicQuery.

A TopicQuery may select multiple samples at once. The writer will publish them periodically, independently from newly written samples. DDS::TopicQueryDispatchQosPolicy::publication_period configures the frequency of that period and DDS::TopicQueryDispatchQosPolicy::samples_per_period configures the maximum number of samples to publish each period.

If the DataWriter blocks during the publication of one of these samples, it will stop and try again the next period. (See DDS::TypedDataWriter::write for the conditions that may cause the write operation to block.)

All the DataWriters that belong to a single DDS::Publisher and enable TopicQueries share the same event thread, but each DataWriter schedules separate events. To configure that thread, see DDS::AsynchronousPublisherQosPolicy::topic_query_publication_thread.

If the DataWriter is dispatching more than one TopicQuery at the same time, the configuration of this periodic event applies to all of them. For example, if a DataWriter receives two TopicQueries around the same time, the period is 1 second, the number of samples per period is 10, the first TopicQuery selects 5 samples, and the second one selects 8, the DataWriter will immediately attempt to publish all 5 for the first TopicQuery and 5 for the second one. After one second, it will publish the remaining 3 samples.

Entity:
DDS::DataWriter
Properties:
RxO = N/A
Changeable = NO
See also
DDS::Publisher

Member Data Documentation

◆ publication_period

Duration_t DDS::TopicQueryDispatchQosPolicy::publication_period

Sets the periodic interval at which samples are published.

[default] 1 second

[range] [0,1 year]

◆ samples_per_period

System::Int32 DDS::TopicQueryDispatchQosPolicy::samples_per_period

Sets the maximum number of samples to publish in each publication_period.

[default] DDS::ResourceLimitsQosPolicy::LENGTH_UNLIMITED

[range] [1, 100000000] or DDS::ResourceLimitsQosPolicy::LENGTH_UNLIMITED

Property Documentation

◆ enable

System:: Boolean DDS::TopicQueryDispatchQosPolicy::enable
getset

Allows this writer to dispatch TopicQueries.

When set to true, this writer can receive and dispatch TopicQueries.

[default] false