RTI Connext .Net APIs  Version 5.2.0
 All Classes Namespaces Functions Variables Enumerations Properties Groups Pages
DATA_WRITER_RESOURCE_LIMITS

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

Classes

struct  DDS::DataWriterResourceLimitsQosPolicy
 Various settings that configure how a DDS::DataWriter allocates and uses physical memory for internal resources. More...
 

Enumerations

enum  DDS::DataWriterResourceLimitsInstanceReplacementKind : UINT32
 Sets the kinds of instances that can be replaced when instance resource limits are reached. More...
 

Functions

static System::String^ DDS::DataWriterResourceLimitsQosPolicy::get_datawriterresourcelimits_qos_policy_name ()
 Stringified human-readable name for DDS::DataWriterResourceLimitsQosPolicy.
 

Detailed Description

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

Enumeration Type Documentation

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

When DDS::ResourceLimitsQosPolicy::max_instances is reached, a DDS::DataWriter 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 DDS::DataWriter will replace the oldest instance satisfying that kind. For example, when the kind is ::DDS::DataWriterResourceLimitsInstanceReplacementKind::UNREGISTERED_INSTANCE_REPLACEMENT, a DDS::DataWriter 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 DDS::DataWriter will replace the old instance with the new instance, and invoke, if available, the ::DDS::DataWriterListener_InstanceReplacedCallback to notify the user about an instance being replaced.

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

If DDS::DataWriterResourceLimitsQosPolicy::replace_empty_instances is true, a DDS::DataWriter first tries replacing instances that have no samples. These empty instances can be unregistered, disposed, or alive. Next, a DDS::DataWriter tries replacing unregistered instances. Since an unregistered instance indicates that the DDS::DataWriter is done modifying it, unregistered instances are replaced before instances of any other state (alive, disposed). This is the same as the ::DDS::DataWriterResourceLimitsInstanceReplacementKind::UNREGISTERED_INSTANCE_REPLACEMENT kind. Then, a DDS::DataWriter tries replacing what is specified by DDS::DataWriterResourceLimitsQosPolicy::instance_replacement. With unregistered instances already checked, this leaves alive and disposed instances. When both alive and disposed instances may be replaced, the kind specifies whether the particular order matters (e.g., DISPOSED_THEN_ALIVE, ALIVE_THEN_DISPOSED) or not (ALIVE_OR_DISPOSED).

QoS:
DDS::DataWriterResourceLimitsQosPolicy

Function Documentation

static System::String ^ DDS::DataWriterResourceLimitsQosPolicy::get_datawriterresourcelimits_qos_policy_name ( )
inlinestatic

Stringified human-readable name for DDS::DataWriterResourceLimitsQosPolicy.


RTI Connext .Net APIs Version 5.2.0 Copyright © Sun Jun 21 2015 Real-Time Innovations, Inc