RTI Connext Traditional C++ API  Version 5.3.0
 All Classes Functions Variables Typedefs Enumerations Enumerator Groups Pages
DDS_TopicQueryDispatchQosPolicy Struct Reference

Configures the ability of a DDSDataWriter to publish samples in response to a DDSTopicQuery. More...

Public Attributes

DDS_Boolean enable
 Allows this writer to dispatch TopicQueries.
 
struct DDS_Duration_t publication_period
 Sets the periodic interval at which samples are published.
 
DDS_Long samples_per_period
 Sets the maximum number of samples to publish in each publication_period.
 

Detailed Description

Configures the ability of a DDSDataWriter to publish samples in response to a DDSTopicQuery.

Enables the ability of a DDSDataWriter to publish historical samples upon reception of a DDSTopicQuery and how often they are published.

Since a TopicQuery selects previously written samples, the DataWriter must have a DDS_DurabilityQosPolicy::kind different from DDS_VOLATILE_DURABILITY_QOS. Also, DDS_ReliabilityQosPolicy::kind must be set to DDS_RELIABLE_RELIABILITY_QOS.

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 FooDataWriter::write for the conditions that may cause the write operation to block.)

All the DataWriters that belong to a single DDSPublisher 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:
DDSDataWriter
Properties:
RxO = N/A
Changeable = NO
See Also
DDSPublisher

Member Data Documentation

DDS_Boolean DDS_TopicQueryDispatchQosPolicy::enable

Allows this writer to dispatch TopicQueries.

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

[default] DDS_BOOLEAN_FALSE

struct DDS_Duration_t DDS_TopicQueryDispatchQosPolicy::publication_period

Sets the periodic interval at which samples are published.

[default] 1 second

[range] [0,1 year]

DDS_Long DDS_TopicQueryDispatchQosPolicy::samples_per_period

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

[default] DDS_LENGTH_UNLIMITED

[range] [1, 100000000] or DDS_LENGTH_UNLIMITED


RTI Connext Traditional C++ API Version 5.3.0 Copyright © Sun Jun 25 2017 Real-Time Innovations, Inc