RTI Connext Modern C++ API  Version 6.1.0
rti::core::policy::DataReaderInstanceRemovalKind_def Struct Reference

Sets the kinds of instances that can be replaced when instance resource limits (dds::core::policy::ResourceLimits::max_instances) are reached. More...

#include <PolicyKind.hpp>

Public Types

enum  type {
  NO_INSTANCE,
  EMPTY_INSTANCES,
  FULLY_PROCESSED_INSTANCES,
  ANY_INSTANCE
}
 The underlying enum type. More...
 

Detailed Description

Sets the kinds of instances that can be replaced when instance resource limits (dds::core::policy::ResourceLimits::max_instances) are reached.

See also
rti::core::policy::DataReaderResourceLimits::instance_replacement

Member Enumeration Documentation

◆ type

The underlying enum type.

Enumerator
NO_INSTANCE 

No instance can be removed.

If an instance resource is required because dds::core::policy::ResourceLimits::max_instances is reached, this setting will disallow instances from being replaced. Samples for new instances will be dropped and reported as lost with reason rti::core::status::SampleLostState::lost_by_instances_limit().

EMPTY_INSTANCES 

Only empty instances can be removed.

Instances can be replaced only if they are empty. An instance is considered empty when all samples have been taken or removed from the DataReader queue due to the dds::core::policy::Lifespan or sample purging due to the dds::core::policy::ReaderDataLifecycle, and there are no outstanding loans on any of the instance's samples.

FULLY_PROCESSED_INSTANCES 

Only fully-processed instances can be removed.

An instance is considered fully processed if every sample for the instance has been processed by the application. A sample is considered processed by the application depending on the dds::core::policy::Reliability::kind:

ANY_INSTANCE 

Any instance can be removed.

Instances can be replaced regardless of whether the subscribing application has processed all of the samples. Samples that have not been processed will be removed.