RTI Connext C API  Version 6.1.0
DDS_DataReaderCacheStatus Struct Reference

<<extension>> The status of the reader's cache. More...

Data Fields

DDS_LongLong sample_count_peak
 The highest number of samples in the reader's queue over the lifetime of the reader. More...
 
DDS_LongLong sample_count
 The number of samples in the reader's queue. More...
 
DDS_LongLong old_source_timestamp_dropped_sample_count
 The number of samples dropped as a result of receiving a sample older than the last one, using DDS_BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS. More...
 
DDS_LongLong tolerance_source_timestamp_dropped_sample_count
 The number of samples dropped as a result of receiving a sample in the future, using DDS_BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS. More...
 
DDS_LongLong ownership_dropped_sample_count
 The number of samples dropped as a result of receiving a sample from a DataWriter with a lower strength, using Exclusive Ownership. More...
 
DDS_LongLong content_filter_dropped_sample_count
 The number of user samples filtered by the DataReader due to Content-Filtered Topics. More...
 
DDS_LongLong time_based_filter_dropped_sample_count
 The number of user samples filtered by the DataReader due to DDS_TimeBasedFilterQosPolicy. More...
 
DDS_LongLong expired_dropped_sample_count
 The number of samples expired by the DataReader due to DDS_LifespanQosPolicy or the autopurge sample delays. More...
 
DDS_LongLong virtual_duplicate_dropped_sample_count
 The number of virtual duplicate samples dropped by the DataReader. A sample is a virtual duplicate if it has the same identity (Virtual Writer GUID and Virtual Sequence Number) as a previously received sample. More...
 
DDS_LongLong replaced_dropped_sample_count
 The number of samples replaced by the DataReader due to DDS_KEEP_LAST_HISTORY_QOS replacement. More...
 
DDS_LongLong writer_removed_batch_sample_dropped_sample_count
 The number of batch samples received by the DataReader that were marked as removed by the DataWriter. More...
 
DDS_LongLong total_samples_dropped_by_instance_replacement
 The number of samples with sample state DDS_NOT_READ_SAMPLE_STATE that were dropped when removing an instance due to instance replacement. See DDS_DataReaderResourceLimitsQosPolicy::instance_replacement for more details about when instances are replaced. More...
 
DDS_LongLong alive_instance_count
 The number of instances in the DataReader's queue with an instance state equal to DDS_ALIVE_INSTANCE_STATE. More...
 
DDS_LongLong alive_instance_count_peak
 The highest value of DDS_DataReaderCacheStatus::alive_instance_count over the lifetime of the DataReader. More...
 
DDS_LongLong no_writers_instance_count
 The number of instances in the DataReader's queue with an instance state equal to DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE. More...
 
DDS_LongLong no_writers_instance_count_peak
 The highest value of DDS_DataReaderCacheStatus::no_writers_instance_count over the lifetime of the DataReader. More...
 
DDS_LongLong disposed_instance_count
 The number of instances in the DataReader's queue with an instance state equal to DDS_NOT_ALIVE_DISPOSED_INSTANCE_STATE. More...
 
DDS_LongLong disposed_instance_count_peak
 The highest value of DDS_DataReaderCacheStatus::disposed_instance_count over the lifetime of the DataReader. More...
 
DDS_LongLong detached_instance_count
 The number of minimal instance states currently being maintained in the DataReader's queue. More...
 
DDS_LongLong detached_instance_count_peak
 The highest value of DDS_DataReaderCacheStatus::detached_instance_count over the lifetime of the DataReader. More...
 
DDS_LongLong compressed_sample_count
 The number of received compressed samples by a DataWriter. More...
 

Detailed Description

<<extension>> The status of the reader's cache.

Entity:
DDS_DataReader

Field Documentation

◆ sample_count_peak

DDS_LongLong DDS_DataReaderCacheStatus::sample_count_peak

The highest number of samples in the reader's queue over the lifetime of the reader.

◆ sample_count

DDS_LongLong DDS_DataReaderCacheStatus::sample_count

The number of samples in the reader's queue.

includes samples that may not yet be available to be read or taken by the user, due to samples being received out of order or PRESENTATION

◆ old_source_timestamp_dropped_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::old_source_timestamp_dropped_sample_count

The number of samples dropped as a result of receiving a sample older than the last one, using DDS_BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS.

When the DataReader is using DDS_BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS:

- If the DataReader receives a sample for an instance with a source timestamp that is older than the last source timestamp received for the instance, the sample is dropped.

- If the DataReader receives a sample for an instance with a source timestamp that is equal to the last source timestamp received for the instance and the writer has a higher virtual GUID, the sample is dropped.

◆ tolerance_source_timestamp_dropped_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::tolerance_source_timestamp_dropped_sample_count

The number of samples dropped as a result of receiving a sample in the future, using DDS_BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS.

When the DataReader is using DDS_BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS: the DataReader will accept a sample only if the source timestamp is no farther in the future from the reception timestamp than the source_timestamp_tolerance. Otherwise, the sample is dropped.

◆ ownership_dropped_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::ownership_dropped_sample_count

The number of samples dropped as a result of receiving a sample from a DataWriter with a lower strength, using Exclusive Ownership.

When using Exclusive Ownership, the DataReader receives data from multiple DataWriters. Each instance can only be owned by one DataWriter.

If other DataWriters write samples on this instance, the samples will be dropped.

◆ content_filter_dropped_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::content_filter_dropped_sample_count

The number of user samples filtered by the DataReader due to Content-Filtered Topics.

When using a content filter on the DataReader side, if the sample received by the DataReader does not pass the filter, it will be dropped.

◆ time_based_filter_dropped_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::time_based_filter_dropped_sample_count

The number of user samples filtered by the DataReader due to DDS_TimeBasedFilterQosPolicy.

When using TIME_BASED_FILTER on the DataReader side, if the sample received by the DataReader does not pass the minimum_separation filter, it will be dropped.

◆ expired_dropped_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::expired_dropped_sample_count

The number of samples expired by the DataReader due to DDS_LifespanQosPolicy or the autopurge sample delays.

◆ virtual_duplicate_dropped_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::virtual_duplicate_dropped_sample_count

The number of virtual duplicate samples dropped by the DataReader. A sample is a virtual duplicate if it has the same identity (Virtual Writer GUID and Virtual Sequence Number) as a previously received sample.

When two DataWriters with the same logical data source publish a sample with the same sequence_number, one sample will be dropped and the other will be received by the DataReader.

This can happen when multiple writers are writing on behalf of the same original DataWriter: for example, in systems with redundant Routing Services or when a DataReader is receiving samples both directly from the original DataWriter and from an instance of Persistence Service.

◆ replaced_dropped_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::replaced_dropped_sample_count

The number of samples replaced by the DataReader due to DDS_KEEP_LAST_HISTORY_QOS replacement.

When the number of samples for an instance in the queue reaches the DDS_HistoryQosPolicy::depth value, a new sample for the instance will replace the oldest sample for the instance in the queue.

The new sample will be accepted and the old sample will be dropped.

This counter will only be updated if the replaced sample's DDS_SampleStateKind was DDS_NOT_READ_SAMPLE_STATE.

◆ writer_removed_batch_sample_dropped_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::writer_removed_batch_sample_dropped_sample_count

The number of batch samples received by the DataReader that were marked as removed by the DataWriter.

When the DataReader receives a batch, the batch can contain samples marked as removed by the DataWriter. Examples of removed samples in a batch could be because of sample replacement due to DDS_KEEP_LAST_HISTORY_QOS DDS_HistoryQosPolicy QoS on the DataWriter or because the duration in DDS_LifespanQosPolicy was reached. By default, any sample marked as removed from a batch is dropped (unless you set the dds.data_reader.accept_writer_removed_batch_samples property in the DDS_PropertyQosPolicy to true). Note: Historical data with removed batch samples written before the DataReader joined the DDS domain will also be included in the count.

◆ total_samples_dropped_by_instance_replacement

DDS_LongLong DDS_DataReaderCacheStatus::total_samples_dropped_by_instance_replacement

The number of samples with sample state DDS_NOT_READ_SAMPLE_STATE that were dropped when removing an instance due to instance replacement. See DDS_DataReaderResourceLimitsQosPolicy::instance_replacement for more details about when instances are replaced.

◆ alive_instance_count

DDS_LongLong DDS_DataReaderCacheStatus::alive_instance_count

The number of instances in the DataReader's queue with an instance state equal to DDS_ALIVE_INSTANCE_STATE.

◆ alive_instance_count_peak

DDS_LongLong DDS_DataReaderCacheStatus::alive_instance_count_peak

The highest value of DDS_DataReaderCacheStatus::alive_instance_count over the lifetime of the DataReader.

See also
DDS_DataReaderCacheStatus::alive_instance_count

◆ no_writers_instance_count

DDS_LongLong DDS_DataReaderCacheStatus::no_writers_instance_count

The number of instances in the DataReader's queue with an instance state equal to DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE.

◆ no_writers_instance_count_peak

DDS_LongLong DDS_DataReaderCacheStatus::no_writers_instance_count_peak

◆ disposed_instance_count

DDS_LongLong DDS_DataReaderCacheStatus::disposed_instance_count

The number of instances in the DataReader's queue with an instance state equal to DDS_NOT_ALIVE_DISPOSED_INSTANCE_STATE.

◆ disposed_instance_count_peak

DDS_LongLong DDS_DataReaderCacheStatus::disposed_instance_count_peak

The highest value of DDS_DataReaderCacheStatus::disposed_instance_count over the lifetime of the DataReader.

See also
DDS_DataReaderCacheStatus::disposed_instance_count

◆ detached_instance_count

DDS_LongLong DDS_DataReaderCacheStatus::detached_instance_count

The number of minimal instance states currently being maintained in the DataReader's queue.

If DDS_DataReaderResourceLimitsQosPolicy::keep_minimum_state_for_instances is true, the DataReader will keep up to a maximum of DDS_DataReaderResourceLimitsQosPolicy::max_total_instances detached instances in its queue. For a more in-depth description of detached instances, refer to DDS_DataReaderResourceLimitsQosPolicy::max_total_instances.

◆ detached_instance_count_peak

DDS_LongLong DDS_DataReaderCacheStatus::detached_instance_count_peak

The highest value of DDS_DataReaderCacheStatus::detached_instance_count over the lifetime of the DataReader.

See also
DDS_DataReaderCacheStatus::detached_instance_count

◆ compressed_sample_count

DDS_LongLong DDS_DataReaderCacheStatus::compressed_sample_count

The number of received compressed samples by a DataWriter.