RTI Connext Traditional C++ API  Version 7.0.0

<<extension>> Various settings that configure how a DDSDataWriter allocates and uses physical memory for internal resources. More...

Classes

struct  DDS_DataWriterResourceLimitsQosPolicy
 Various settings that configure how a DDSDataWriter allocates and uses physical memory for internal resources. More...
 

Enumerations

enum  DDS_DataWriterResourceLimitsInstanceReplacementKind {
  DDS_UNREGISTERED_INSTANCE_REPLACEMENT,
  DDS_ALIVE_INSTANCE_REPLACEMENT,
  DDS_DISPOSED_INSTANCE_REPLACEMENT,
  DDS_ALIVE_THEN_DISPOSED_INSTANCE_REPLACEMENT,
  DDS_DISPOSED_THEN_ALIVE_INSTANCE_REPLACEMENT,
  DDS_ALIVE_OR_DISPOSED_INSTANCE_REPLACEMENT
}
 Sets the kinds of instances that can be replaced when instance resource limits are reached. More...
 

Variables

const char *const DDS_DATAWRITERRESOURCELIMITS_QOS_POLICY_NAME
 Stringified human-readable name for DDS_DataWriterResourceLimitsQosPolicy. More...
 

Detailed Description

<<extension>> Various settings that configure how a DDSDataWriter allocates and uses physical memory for internal resources.

Enumeration Type Documentation

◆ DDS_DataWriterResourceLimitsInstanceReplacementKind

Sets the kinds of instances that can be replaced when instance resource limits are reached.

When DDS_ResourceLimitsQosPolicy::max_instances is reached, a DDSDataWriter will try to make room for a new instance by attempting to reclaim an existing instance based on the instance replacement kind specified by DDS_DataWriterResourceLimitsQosPolicy::instance_replacement.

Only instances whose states match the specified kinds are eligible to be replaced. In addition, an instance must have had all of its samples fully acknowledged for it to be considered replaceable.

For all kinds, a DDSDataWriter will replace the oldest instance satisfying that kind. For example, when the kind is DDS_UNREGISTERED_INSTANCE_REPLACEMENT, a DDSDataWriter will remove the oldest, fully acknowledged, unregistered instance, if such an instance exists.

If no replaceable instance exists, the invoked function will either return with an appropriate out-of-resources return code, or in the case of a write, it may first block to wait for an instance to be acknowledged. Otherwise, the DDSDataWriter will replace the old instance with the new instance, and invoke, if available, the DDSDataWriterListener::on_instance_replaced to notify the user about an instance being replaced.

A DDSDataWriter checks for replaceable instances in the following order, stopping once a replaceable instance is found:

QoS:
DDS_DataWriterResourceLimitsQosPolicy
Enumerator
DDS_UNREGISTERED_INSTANCE_REPLACEMENT 

Allows a DDSDataWriter to reclaim unregistered acknowledged instances.

By default, all instance replacement kinds first attempt to reclaim an unregistered, acknowledged instance. Used in DDS_DataWriterResourceLimitsQosPolicy::instance_replacement [default]

DDS_ALIVE_INSTANCE_REPLACEMENT 

Allows a DDSDataWriter to reclaim alive, acknowledged instances.

When an unregistered, acknowledged instance is not available to reclaim, this kind allows a DDSDataWriter to reclaim an alive, acknowledged instance, where an alive instance is a registered, non-disposed instance. The least recently registered or written alive instance will be reclaimed.

DDS_DISPOSED_INSTANCE_REPLACEMENT 

Allows a DDSDataWriter to reclaim disposed acknowledged instances.

When an unregistered, acknowledged instance is not available to reclaim, this kind allows a DDSDataWriter to reclaim a disposed, acknowledged instance. The least recently disposed instance will be reclaimed.

DDS_ALIVE_THEN_DISPOSED_INSTANCE_REPLACEMENT 

Allows a DDSDataWriter first to reclaim an alive, acknowledged instance, and then, if necessary, a disposed, acknowledged instance.

When an unregistered, acknowledged instance is not available to reclaim, this kind allows a DDSDataWriter to first try reclaiming an alive, acknowledged instance. If no instance is reclaimable, then it tries reclaiming a disposed, acknowledged instance. The least recently used (i.e., registered, written, or disposed) instance will be reclaimed.

DDS_DISPOSED_THEN_ALIVE_INSTANCE_REPLACEMENT 

Allows a DDSDataWriter first to reclaim a disposed, acknowledged instance, and then, if necessary, an alive, acknowledged instance.

When an unregistered, acknowledged instance is not available to reclaim, this kind allows a DDSDataWriter to first try reclaiming a disposed, acknowledged instance. If no instance is reclaimable, then it tries reclaiming an alive, acknowledged instance. The least recently used (i.e., disposed, registered, or written) instance will be reclaimed.

DDS_ALIVE_OR_DISPOSED_INSTANCE_REPLACEMENT 

Allows a DDSDataWriter to reclaim a either an alive acknowledged instance or a disposed acknowledged instance.

When an unregistered acknowledged instance is not available to reclaim, this kind allows a DDSDataWriter to reclaim either an alive, acknowledged instance or a disposed, acknowledged instance. If both instance kinds are available to reclaim, the DDSDataWriter will reclaim the least recently used (i.e. disposed, registered, or written) instance.

Variable Documentation

◆ DDS_DATAWRITERRESOURCELIMITS_QOS_POLICY_NAME

const char* const DDS_DATAWRITERRESOURCELIMITS_QOS_POLICY_NAME

Stringified human-readable name for DDS_DataWriterResourceLimitsQosPolicy.