RTI Connext .NET API (legacy)  Version 6.1.0
DDS::DataReaderCacheStatus Struct Reference

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

#include <managed_subscription.h>

Public Attributes

System::Int64 sample_count_peak
 The highest number of samples in the reader's queue over the lifetime of the reader. More...
 
System::Int64 sample_count
 The number of samples in the reader's queue. More...
 
System::Int64 old_source_timestamp_dropped_sample_count
 The number of samples dropped as a result of receiving a sample older than the last one, using BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS. More...
 
System::Int64 tolerance_source_timestamp_dropped_sample_count
 The number of samples dropped as a result of receiving a sample in the future, using BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS. More...
 
System::Int64 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...
 
System::Int64 content_filter_dropped_sample_count
 The number of user samples filtered by the DataReader due to Content-Filtered Topics. More...
 
System::Int64 time_based_filter_dropped_sample_count
 The number of user samples filtered by the DataReader due to DDS::TimeBasedFilterQosPolicy. More...
 
System::Int64 expired_dropped_sample_count
 The number of samples expired by the DataReader due to DDS::LifespanQosPolicy or the autopurge sample delays. More...
 
System::Int64 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...
 
System::Int64 replaced_dropped_sample_count
 The number of samples replaced by the DataReader due to KEEP_LAST_HISTORY_QOS replacement. More...
 
System::Int64 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...
 
System::Int64 total_samples_dropped_by_instance_replacement
 The number of samples with sample state DDS::SampleStateKind::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...
 
System::Int64 alive_instance_count
 The number of instances in the DataReader's queue with an instance state equal to DDS::InstanceStateKind::ALIVE_INSTANCE_STATE. More...
 
System::Int64 alive_instance_count_peak
 The highest value of DDS::DataReaderCacheStatus::alive_instance_count over the lifetime of the DataReader. More...
 
System::Int64 no_writers_instance_count
 The number of instances in the DataReader's queue with an instance state equal to DDS::InstanceStateKind::NOT_ALIVE_NO_WRITERS_INSTANCE_STATE. More...
 
System::Int64 no_writers_instance_count_peak
 The highest value of DDS::DataReaderCacheStatus::no_writers_instance_count over the lifetime of the DataReader. More...
 
System::Int64 disposed_instance_count
 The number of instances in the DataReader's queue with an instance state equal to DDS::InstanceStateKind::NOT_ALIVE_DISPOSED_INSTANCE_STATE. More...
 
System::Int64 disposed_instance_count_peak
 The highest value of DDS::DataReaderCacheStatus::disposed_instance_count over the lifetime of the DataReader. More...
 
System::Int64 detached_instance_count
 The number of minimal instance states currently being maintained in the DataReader's queue. More...
 
System::Int64 detached_instance_count_peak
 The highest value of DDS::DataReaderCacheStatus::detached_instance_count over the lifetime of the DataReader. More...
 
System::Int64 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

Member Data Documentation

◆ sample_count_peak

System::Int64 DDS::DataReaderCacheStatus::sample_count_peak

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

◆ sample_count

System::Int64 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

System::Int64 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 BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS.

When the DataReader is using 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

System::Int64 DDS::DataReaderCacheStatus::tolerance_source_timestamp_dropped_sample_count

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

When the DataReader is using 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

System::Int64 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

System::Int64 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

System::Int64 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

System::Int64 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

System::Int64 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

System::Int64 DDS::DataReaderCacheStatus::replaced_dropped_sample_count

The number of samples replaced by the DataReader due to 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::SampleStateKind::NOT_READ_SAMPLE_STATE.

◆ writer_removed_batch_sample_dropped_sample_count

System::Int64 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 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

System::Int64 DDS::DataReaderCacheStatus::total_samples_dropped_by_instance_replacement

The number of samples with sample state DDS::SampleStateKind::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

System::Int64 DDS::DataReaderCacheStatus::alive_instance_count

The number of instances in the DataReader's queue with an instance state equal to DDS::InstanceStateKind::ALIVE_INSTANCE_STATE.

◆ alive_instance_count_peak

System::Int64 DDS::DataReaderCacheStatus::alive_instance_count_peak

◆ no_writers_instance_count

System::Int64 DDS::DataReaderCacheStatus::no_writers_instance_count

The number of instances in the DataReader's queue with an instance state equal to DDS::InstanceStateKind::NOT_ALIVE_NO_WRITERS_INSTANCE_STATE.

◆ no_writers_instance_count_peak

System::Int64 DDS::DataReaderCacheStatus::no_writers_instance_count_peak

◆ disposed_instance_count

System::Int64 DDS::DataReaderCacheStatus::disposed_instance_count

The number of instances in the DataReader's queue with an instance state equal to DDS::InstanceStateKind::NOT_ALIVE_DISPOSED_INSTANCE_STATE.

◆ disposed_instance_count_peak

System::Int64 DDS::DataReaderCacheStatus::disposed_instance_count_peak

◆ detached_instance_count

System::Int64 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

System::Int64 DDS::DataReaderCacheStatus::detached_instance_count_peak

◆ compressed_sample_count

System::Int64 DDS::DataReaderCacheStatus::compressed_sample_count

The number of received compressed samples by a DataWriter.