RTI Connext DDS Micro C++ API
Version 2.4.14.1
|
<<cert>> Resource limits that apply only to DDSDataReader instances. More...
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. |
<<cert>> Resource limits that apply only to DDSDataReader instances.
This QoS policy is an extension to the DDS standard.
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 |
[default] DDS_NO_INSTANCE_REPLACEMENT_QOS
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]