RTI Connext Modern C++ API Version 7.3.0

<<extension>> Information about the status dds::core::status::StatusMask::datareader_cache() More...

#include <Status.hpp>

Inherits rti::core::NativeValueType< T, NATIVE_T, ADAPTER >.

Public Member Functions

int64_t sample_count () const
 The number of samples in the reader's queue. More...
 
int64_t sample_count_peak () const
 The highest number of samples in the reader's queue over the lifetime of the reader. More...
 
int64_t old_source_timestamp_dropped_sample_count () const
 The number of samples dropped as a result of receiving a sample older than the last one, using dds::core::policy::DestinationOrderKind::BY_SOURCE_TIMESTAMP. More...
 
int64_t tolerance_source_timestamp_dropped_sample_count () const
 The number of samples dropped as a result of receiving a sample in the future, using dds::core::policy::DestinationOrderKind::BY_SOURCE_TIMESTAMP. More...
 
int64_t ownership_dropped_sample_count () const
 The number of samples dropped as a result of receiving a sample from a DataWriter with a lower strength, using Exclusive Ownership. More...
 
int64_t content_filter_dropped_sample_count () const
 The number of user samples filtered by the DataReader due to Content-Filtered Topics. More...
 
int64_t time_based_filter_dropped_sample_count () const
 The number of user samples filtered by the DataReader due to dds::core::policy::TimeBasedFilter. More...
 
int64_t expired_dropped_sample_count () const
 The number of samples expired by the DataReader due to dds::core::policy::Lifespan or the autopurge sample delays. More...
 
int64_t virtual_duplicate_dropped_sample_count () const
 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...
 
int64_t replaced_dropped_sample_count () const
 The number of samples replaced by the DataReader due to dds::core::policy::HistoryKind::KEEP_LAST replacement. More...
 
int64_t writer_removed_batch_sample_dropped_sample_count () const
 The number of batch samples received by the DataReader that were marked as removed by the DataWriter. More...
 
int64_t total_samples_dropped_by_instance_replacement () const
 The number of samples with sample state dds::sub::status::SampleState::not_read() that were dropped when removing an instance due to instance replacement. See rti::core::policy::DataReaderResourceLimits::instance_replacement for more details about when instances are replaced. More...
 
int64_t alive_instance_count () const
 The number of instances in the DataReader's queue with an instance state equal to dds::sub::status::InstanceState::alive(). More...
 
int64_t alive_instance_count_peak () const
 The highest value of rti::core::status::DataReaderCacheStatus::alive_instance_count over the lifetime of the DataReader. More...
 
int64_t no_writers_instance_count () const
 The number of instances in the DataReader's queue with an instance state equal to dds::sub::status::InstanceState::not_alive_no_writers(). More...
 
int64_t no_writers_instance_count_peak () const
 The highest value of rti::core::status::DataReaderCacheStatus::no_writers_instance_count over the lifetime of the DataReader. More...
 
int64_t disposed_instance_count () const
 The number of instances in the DataReader's queue with an instance state equal to dds::sub::status::InstanceState::not_alive_disposed(). More...
 
int64_t disposed_instance_count_peak () const
 The highest value of rti::core::status::DataReaderCacheStatus::disposed_instance_count over the lifetime of the DataReader. More...
 
int64_t detached_instance_count () const
 The number of minimal instance states currently being maintained in the DataReader's queue. More...
 
int64_t detached_instance_count_peak () const
 The highest value of rti::core::status::DataReaderCacheStatus::detached_instance_count over the lifetime of the DataReader. More...
 
int64_t compressed_sample_count () const
 The number of received samples compressed by a DataWriter. More...
 

Detailed Description

Member Function Documentation

◆ sample_count()

int64_t rti::core::status::DataReaderCacheStatus::sample_count ( ) const
inline

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

◆ sample_count_peak()

int64_t rti::core::status::DataReaderCacheStatus::sample_count_peak ( ) const
inline

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

◆ old_source_timestamp_dropped_sample_count()

int64_t rti::core::status::DataReaderCacheStatus::old_source_timestamp_dropped_sample_count ( ) const
inline

The number of samples dropped as a result of receiving a sample older than the last one, using dds::core::policy::DestinationOrderKind::BY_SOURCE_TIMESTAMP.

When the DataReader is using dds::core::policy::DestinationOrderKind::BY_SOURCE_TIMESTAMP:

  • 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()

int64_t rti::core::status::DataReaderCacheStatus::tolerance_source_timestamp_dropped_sample_count ( ) const
inline

The number of samples dropped as a result of receiving a sample in the future, using dds::core::policy::DestinationOrderKind::BY_SOURCE_TIMESTAMP.

When the DataReader is using dds::core::policy::DestinationOrderKind::BY_SOURCE_TIMESTAMP: 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()

int64_t rti::core::status::DataReaderCacheStatus::ownership_dropped_sample_count ( ) const
inline

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()

int64_t rti::core::status::DataReaderCacheStatus::content_filter_dropped_sample_count ( ) const
inline

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()

int64_t rti::core::status::DataReaderCacheStatus::time_based_filter_dropped_sample_count ( ) const
inline

The number of user samples filtered by the DataReader due to dds::core::policy::TimeBasedFilter.

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()

int64_t rti::core::status::DataReaderCacheStatus::expired_dropped_sample_count ( ) const
inline

The number of samples expired by the DataReader due to dds::core::policy::Lifespan or the autopurge sample delays.

◆ virtual_duplicate_dropped_sample_count()

int64_t rti::core::status::DataReaderCacheStatus::virtual_duplicate_dropped_sample_count ( ) const
inline

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()

int64_t rti::core::status::DataReaderCacheStatus::replaced_dropped_sample_count ( ) const
inline

The number of samples replaced by the DataReader due to dds::core::policy::HistoryKind::KEEP_LAST replacement.

When the number of samples for an instance in the queue reaches the dds::core::policy::History::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::sub::status::SampleState was dds::sub::status::SampleState::not_read().

◆ writer_removed_batch_sample_dropped_sample_count()

int64_t rti::core::status::DataReaderCacheStatus::writer_removed_batch_sample_dropped_sample_count ( ) const
inline

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::core::policy::HistoryKind::KEEP_LAST dds::core::policy::History QoS on the DataWriter or because the duration in dds::core::policy::Lifespan 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 rti::core::policy::Property 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()

int64_t rti::core::status::DataReaderCacheStatus::total_samples_dropped_by_instance_replacement ( ) const
inline

The number of samples with sample state dds::sub::status::SampleState::not_read() that were dropped when removing an instance due to instance replacement. See rti::core::policy::DataReaderResourceLimits::instance_replacement for more details about when instances are replaced.

◆ alive_instance_count()

int64_t rti::core::status::DataReaderCacheStatus::alive_instance_count ( ) const
inline

The number of instances in the DataReader's queue with an instance state equal to dds::sub::status::InstanceState::alive().

◆ alive_instance_count_peak()

int64_t rti::core::status::DataReaderCacheStatus::alive_instance_count_peak ( ) const
inline

◆ no_writers_instance_count()

int64_t rti::core::status::DataReaderCacheStatus::no_writers_instance_count ( ) const
inline

The number of instances in the DataReader's queue with an instance state equal to dds::sub::status::InstanceState::not_alive_no_writers().

◆ no_writers_instance_count_peak()

int64_t rti::core::status::DataReaderCacheStatus::no_writers_instance_count_peak ( ) const
inline

◆ disposed_instance_count()

int64_t rti::core::status::DataReaderCacheStatus::disposed_instance_count ( ) const
inline

The number of instances in the DataReader's queue with an instance state equal to dds::sub::status::InstanceState::not_alive_disposed().

◆ disposed_instance_count_peak()

int64_t rti::core::status::DataReaderCacheStatus::disposed_instance_count_peak ( ) const
inline

◆ detached_instance_count()

int64_t rti::core::status::DataReaderCacheStatus::detached_instance_count ( ) const
inline

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

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

◆ detached_instance_count_peak()

int64_t rti::core::status::DataReaderCacheStatus::detached_instance_count_peak ( ) const
inline

◆ compressed_sample_count()

int64_t rti::core::status::DataReaderCacheStatus::compressed_sample_count ( ) const
inline

The number of received samples compressed by a DataWriter.

These include data, dispose, and unregister samples sent by a DataWriter.