RTI Connext Micro C API  Version 2.4.14.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
DDS_DataReaderResourceLimitsQosPolicy Struct Reference

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

Data Fields

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 DDS_DataReader instances.

This QoS policy is an extension to the DDS standard.

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

Field 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 DDS_DataReader can receive data from regardless of which instance it is.

Resources controlled by this limit can only be reused when a remote DDS_DataWriter 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 DDS_DataWriter entities a DDS_DataReader 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 DDS_DataWriter to update an instance is always saved. When an instance is no longer updated by a known, to the DDS_DataReader or DDS_DataWriter, DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE state is signaled on the DDS_DataReader. 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 DDS_DataWriter the DDS_DataReader is receiving data from. This resource-limit is useful in preventing one DDS_DataWriter from starving another DDS_DataWriter. NOTE: The samples cached from a DDS_DataWriter 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 DDS_DataReader maintains information about the state of its peer DDS_DataWriter (those it has matched with). Part of this state is which locators (or destination addresses) it should use to send data to a particular DDS_DataWriter. The DDS_DataReaderResourceLimitsQosPolicy::max_routes_per_writer resource-limit limits the maximum number of routes that can be saved per DDS_DataWriter.

This resource-limit is shared across all matched DDS_DataWriter per DDS_DataReader. 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 DDS_DataWriter may have 6 routes and the other 2.

[default] 4

[range] [1, 2000]


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