RTI Connext Java API  Version 5.2.0
 All Classes Namespaces Functions Variables Groups Pages
ReaderDataLifecycleQosPolicy Class Reference

Controls how a DataReader manages the lifecycle of the data that it has received. More...

Inheritance diagram for ReaderDataLifecycleQosPolicy:
QosPolicy

Public Attributes

final Duration_t autopurge_nowriter_samples_delay
 Minimum duration for which the com.rti.dds.subscription.DataReader will maintain information regarding an instance once its instance_state becomes com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_NO_WRITERS_INSTANCE_STATE.
 
final Duration_t autopurge_disposed_samples_delay
 Minimum duration for which the com.rti.dds.subscription.DataReader will maintain samples for an instance once its instance_state becomes com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_DISPOSED_INSTANCE_STATE.
 
final Duration_t autopurge_disposed_instances_delay
 <<extension>> Minimum duration for which the com.rti.dds.subscription.DataReader will maintain an instance once its instance_state becomes com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_DISPOSED_INSTANCE_STATE.
 
- Public Attributes inherited from QosPolicy
final QosPolicyId_t id
 The ID of this QoS policy.
 
final String policy_name
 The name of this QoS policy.
 

Additional Inherited Members

- Public Member Functions inherited from Struct
abstract boolean equals (Object obj)
 
abstract int hashCode ()
 
String toString ()
 
- Protected Member Functions inherited from Struct
 Struct ()
 
abstract void pull_from_nativeI (long native_status)
 
abstract void push_to_nativeI (long native_status)
 

Detailed Description

Controls how a DataReader manages the lifecycle of the data that it has received.

When a DataReader receives data, it is stored in a receive queue for the DataReader. The user application may either take the data from the queue or leave it there.

This QoS policy controls whether or not RTI Connext will automatically remove data from the receive queue (so that user applications cannot access it afterwards) when it detects that there are no more DataWriters alive for that data. It specifies how long a com.rti.dds.subscription.DataReader must retain information regarding instances that have the instance_state com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_NO_WRITERS_INSTANCE_STATE.

Note: This policy is not concerned with keeping reliable reader state or discovery information.

The com.rti.dds.subscription.DataReader internally maintains the samples that have not been "taken" by the application, subject to the constraints imposed by other QoS policies such as com.rti.dds.infrastructure.HistoryQosPolicy and com.rti.dds.infrastructure.ResourceLimitsQosPolicy.

The com.rti.dds.subscription.DataReader also maintains information regarding the identity, view_state and instance_state of data instances even after all samples have been taken. This is needed to properly compute the states when future samples arrive.

Under normal circumstances the com.rti.dds.subscription.DataReader can only reclaim all resources for instances for which there are no writers and for which all samples have been 'taken'. The last sample the com.rti.dds.subscription.DataReader will have taken for that instance will have an instance_state of either com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_NO_WRITERS_INSTANCE_STATE or com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_DISPOSED_INSTANCE_STATE depending on whether or not the last writer that had ownership of the instance disposed it.

In the absence of READER_DATA_LIFECYCLE, this behavior could cause problems if the application forgets to take those samples. "Untaken" samples will prevent the com.rti.dds.subscription.DataReader from reclaiming the resources and they would remain in the com.rti.dds.subscription.DataReader indefinitely.

A DataReader can also reclaim all resources for instances that have an instance state of com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_DISPOSED_INSTANCE_STATE and for which all DDS samples have been 'taken'. DataReaders will only reclaim resources in this situation when the autopurge_disposed_instances_delay has been set to zero.

For keyed Topics, the consideration of removing data samples from the receive queue is done on a per instance (key) basis. Thus when RTI Connext detects that there are no longer DataWriters alive for a certain key value of a Topic (an instance of the Topic), it can be configured to remove all data samples for that instance (key).

Entity:
com.rti.dds.subscription.DataReader
Properties:
RxO = N/A
Changeable = YES

Member Data Documentation

final Duration_t autopurge_nowriter_samples_delay

Minimum duration for which the com.rti.dds.subscription.DataReader will maintain information regarding an instance once its instance_state becomes com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_NO_WRITERS_INSTANCE_STATE.

At some point after this time elapses, the com.rti.dds.subscription.DataReader will purge all internal information regarding the instance, any "untaken" samples will also be lost.

[default] com.rti.dds.infrastructure.Duration_t.DURATION_INFINITE

[range] [1 nanosec, 1 year] or com.rti.dds.infrastructure.Duration_t.DURATION_INFINITE

final Duration_t autopurge_disposed_samples_delay

Minimum duration for which the com.rti.dds.subscription.DataReader will maintain samples for an instance once its instance_state becomes com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_DISPOSED_INSTANCE_STATE.

At some point after this time elapses, the com.rti.dds.subscription.DataReader will purge all samples for the instance.

[default] com.rti.dds.infrastructure.Duration_t.DURATION_INFINITE

[range] [1 nanosec, 1 year] or com.rti.dds.infrastructure.Duration_t.DURATION_INFINITE

final Duration_t autopurge_disposed_instances_delay

<<extension>> Minimum duration for which the com.rti.dds.subscription.DataReader will maintain an instance once its instance_state becomes com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_DISPOSED_INSTANCE_STATE.

At some point after this time elapses, the com.rti.dds.subscription.DataReader will purge all knowledge of the instance.

The only currently supported values are 0 and com.rti.dds.infrastructure.Duration_t.DURATION_INFINITE. A value of 0 will purge an instance's state immediately after the instance state transitions to com.rti.dds.subscription.InstanceStateKind.InstanceStateKind.NOT_ALIVE_DISPOSED_INSTANCE_STATE, as long as all samples, including the dispose sample, associated with that instance have been 'taken'.

[default] com.rti.dds.infrastructure.Duration_t.DURATION_INFINITE


RTI Connext Java API Version 5.2.0 Copyright © Sun Jun 21 2015 Real-Time Innovations, Inc