RTI Connext DDS Micro C++ API  Version 2.4.14.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
DDS_DataReaderResourceLimitsQosPolicy Struct Reference

<<cert>> Resource limits that apply only to DDSDataReader instances. More...

List of all members.

Public Attributes

DDS_Long max_remote_writers
 The maximum number of remote writers for which the reader will maintain state and communication.
DDS_Long max_remote_writers_per_instance
 The maximum number of remote writers for a unique instance for which the reader will maintain state and communication.
DDS_Long max_samples_per_remote_writer
 The maximum number of untaken samples from a given remote DataWriter that a DataReader may store.
DDS_Long max_outstanding_reads
 The maximum number of outstanding read/take calls (or one of the variants) on the same DataReader for which the memory has not been returned by calling FooDataReader::return_loan.
DDS_DataReaderResourceLimitsInstanceReplacementKind instance_replacement
DDS_Long max_routes_per_writer
 The maximum number of routes the reader will send to per matched writer.

Detailed Description

<<cert>> Resource limits that apply only to DDSDataReader instances.

This QoS policy is an extension to the DDS standard.

Entity:
DDSDataReader
Properties:
RxO = N/A
Changeable = NO

Member Data Documentation

DDS_Long DDS_DataReaderResourceLimitsQosPolicy::max_remote_writers

The maximum number of remote writers for which the reader will maintain state and communication.

The DDS_DataReaderResourceLimitsQosPolicy::max_remote_writers resource-limit limits the maximum number of remote DataWriters the DDSDataReader can receive data from regardless of which instance it is.

Resources controlled by this limit can only be reused when a remote DDSDataWriter is either deleted or looses liveliness.

[default] 1

[range] [1, 1000000], >= max_remote_writers_per_instance

DDS_Long DDS_DataReaderResourceLimitsQosPolicy::max_remote_writers_per_instance

The maximum number of remote writers for a unique instance for which the reader will maintain state and communication.

The DDS_DataReaderResourceLimitsQosPolicy::max_remote_writers_per_instance limits the maximum number of remote DDSDataWriter entities a DDSDataReader maintains state for per instance. If this resource-limit is lower than the actual number of remote DataWriters, updating an instance only state for up to DDS_DataReaderResourceLimitsQosPolicy::max_remote_writers_per_instance is maintained. It is not guaranteed to be the last DDS_DataReaderResourceLimitsQosPolicy::max_remote_writers_per_instance though. However, the last remote DDSDataWriter to update an instance is always saved. When an instance is no longer updated by a known, to the DDSDataReader or DDSDataWriter, DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE state is signaled on the DDSDataReader. Thus, if this resource-limit is lower than the actual number of remote DataWriters updating an instance, DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE may be signaled even though there may be one or more DataWriters still updating an instance. In this case the instance will go back to the DDS_ALIVE_INSTANCE_STATE.

[default] 1

[range] [1, 2147483647], <= max_remote_writers

DDS_Long DDS_DataReaderResourceLimitsQosPolicy::max_samples_per_remote_writer

The maximum number of untaken samples from a given remote DataWriter that a DataReader may store.

This resource-limit limits the maximum number of samples that can be cached per remote DDSDataWriter the DDSDataReader is receiving data from. This resource-limit is useful in preventing one DDSDataWriter from starving another DDSDataWriter. NOTE: The samples cached from a DDSDataWriter are allocated from the same sample pool controlled by DDS_ResourceLimitsQosPolicy::max_samples.

[default] 1

[range] [1, 100000000], <= DDS_ResourceLimitsQosPolicy::max_samples

DDS_Long DDS_DataReaderResourceLimitsQosPolicy::max_outstanding_reads

The maximum number of outstanding read/take calls (or one of the variants) on the same DataReader for which the memory has not been returned by calling FooDataReader::return_loan.

The DDS_DataReaderResourceLimitsQosPolicy::max_outstanding_reads resource-limit limits the maximum number of simultaneous loans an application can make at any given time using the FooDataReader::read() and FooDataReader::take() APIs.

Typically a value of 1 is sufficient. It is only necessary to increase this value if an application thread will access the same cache before another thread has returned the loan.

[default] 1

[range] [1, 2147483647]

DDS_DataReaderResourceLimitsInstanceReplacementKind DDS_DataReaderResourceLimitsQosPolicy::instance_replacement
DDS_Long DDS_DataReaderResourceLimitsQosPolicy::max_routes_per_writer

The maximum number of routes the reader will send to per matched writer.

Each DDSDataReader maintains information about the state of its peer DDSDataWriter (those it has matched with). Part of this state is which locators (or destination addresses) it should use to send data to a particular DDSDataWriter. The DDS_DataReaderResourceLimitsQosPolicy::max_routes_per_writer resource-limit limits the maximum number of routes that can be saved per DDSDataWriter.

This resource-limit is shared across all matched DDSDataWriter per DDSDataReader. Thus, if DDS_DataReaderResourceLimitsQosPolicy::max_remote_writers is 2 and DDS_DataReaderResourceLimitsQosPolicy::max_routes_per_writer is 4, a total of 8 routes can be saved for both DataWriters. One DDSDataWriter may have 6 routes and the other 2.

[default] 4

[range] [1, 2000]


RTI Connext DDS Micro C++ API Version 2.4.14.1 Copyright © Thu Nov 2 2023 Real-Time Innovations, Inc