RTI Connext Modern C++ API  Version 6.1.0

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

#include <Status.hpp>

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

Public Member Functions

EventCount64 received_sample_count () const
 The number of samples received by a DataReader. More...
 
EventCount64 received_sample_bytes () const
 The number of bytes received by a DataReader. More...
 
EventCount64 duplicate_sample_count () const
 The number of samples from a remote DataWriter received, not for the first time, by a local DataReader. More...
 
EventCount64 duplicate_sample_bytes () const
 The number of samples from a remote DataWriter received, not for the first time, by a local DataReader. More...
 
EventCount64 received_heartbeat_count () const
 The number of Heartbeats from a remote DataWriter received by a local DataReader. More...
 
EventCount64 received_heartbeat_bytes () const
 The number of bytes of Heartbeats from a remote DataWriter received by a local DataReader. More...
 
EventCount64 sent_ack_count () const
 The number of ACKs sent from a local DataReader to a matching remote DataWriter. More...
 
EventCount64 sent_ack_bytes () const
 The number of bytes of ACKs sent from a local DataReader to a matching remote DataWriter. More...
 
EventCount64 sent_nack_count () const
 The number of NACKs sent from a local DataReader to a matching remote DataWriter. More...
 
EventCount64 sent_nack_bytes () const
 The number of bytes of NACKs sent from a local DataReader to a matching remote DataWriter. More...
 
EventCount64 received_gap_count () const
 The number of GAPs received from remote DataWriter to this DataReader. More...
 
EventCount64 received_gap_bytes () const
 The number of bytes of GAPs received from remote DataWriter to this DataReader. More...
 
EventCount64 rejected_sample_count () const
 The number of times a sample is rejected due to exceptions in the receive path. More...
 
rti::core::SequenceNumber first_available_sample_sequence_number () const
 Sequence number of the first available sample in a matched DataWriters reliability queue. More...
 
rti::core::SequenceNumber last_available_sample_sequence_number () const
 Sequence number of the last available sample in a matched Datawriter's reliability queue. More...
 
rti::core::SequenceNumber last_committed_sample_sequence_number () const
 Sequence number of the newest sample received from the matched DataWriter committed to the DataReader's queue. More...
 
int32_t uncommitted_sample_count () const
 Number of received samples that are not yet available to be read or taken, due to being received out of order. More...
 
int64_t received_fragment_count () const
 The number of DATA_FRAG messages that have been received by this DataReader. More...
 
int64_t dropped_fragment_count () const
 The number of DATA_FRAG messages that have been dropped by a DataReader. More...
 
int64_t reassembled_sample_count () const
 The number of fragmented samples that have been reassembled by a DataReader. More...
 
int64_t sent_nack_fragment_count () const
 The number of NACK fragments that have been sent from a DataReader to a DataWriter. More...
 
int64_t sent_nack_fragment_bytes () const
 The number of NACK fragment bytes that have been sent from a DataReader to a DataWriter. More...
 
int64_t out_of_range_rejected_sample_count () const
 The number of samples dropped by the DataReader due to received window is full and the sample is out-of-order. More...
 

Detailed Description

Member Function Documentation

◆ received_sample_count()

EventCount64 rti::core::status::DataReaderProtocolStatus::received_sample_count ( ) const
inline

The number of samples received by a DataReader.

Depending on how the rti::core::status::DataReaderProtocol was obtained this may count samples coming from a specific DataWriter or from all the DataWriters that are matched with the DataReader.

If the rti::core::status::DataReaderProtocol is obtained using the dds::sub::DataReader::datareader_protocol_status operation then it will count samples from any DataWriter. If the DataReaderProtocolStatus is obtained using the dds::sub::DataReader::matched_publication_datareader_protocol_status then it will count the samples for the DataWriter specified as a parameter to the function.

Duplicate samples arriving from the DataWriter(s) (e.g. via multiple network paths) are detected prior to increasing this counter. The duplicate samples are counted by rti::core::status::DataReaderProtocol::duplicate_sample_count.

If the DataReader has specified a ContentFilter the received samples that do not pass the filter are part of this counter. The filtered samples are counted by rti::core::status::DataReaderProtocol::filtered_sample_count.

Samples rejected because they do not fit on the DataReader Queue are also part of this counter.

Note the received_sample_count counts samples received from all DataWriters and it does not necessarily match the number of samples accepted into the DataReader Queue. This is because:

  • Samples can also be inserted into the DataReader Queue by lifecycle events that are locally detected like an instance becoming not alive as a result of DataWriters leaving the network.
  • Samples can be filtered out due to ContentFilter or TimeFilter
  • Samples can be rejected because there is no space in DataReader Queue

Note that when data is fragmented, this statistic is updated when all of the fragments required to reassemble a sample are received, not when individual fragments are received.

◆ received_sample_bytes()

EventCount64 rti::core::status::DataReaderProtocolStatus::received_sample_bytes ( ) const
inline

The number of bytes received by a DataReader.

See also
rti::core::status::DataReaderProtocol::received_sample_count

Note that when data is fragmented, this statistic is updated upon the receipt of each fragment, not when a sample is reassembled.

◆ duplicate_sample_count()

EventCount64 rti::core::status::DataReaderProtocolStatus::duplicate_sample_count ( ) const
inline

The number of samples from a remote DataWriter received, not for the first time, by a local DataReader.

Such samples can be redundant, out-of-order, etc. and are not stored in the reader's queue.

◆ duplicate_sample_bytes()

EventCount64 rti::core::status::DataReaderProtocolStatus::duplicate_sample_bytes ( ) const
inline

The number of samples from a remote DataWriter received, not for the first time, by a local DataReader.

Such samples can be redundant, out-of-order, etc. and are not stored in the reader's queue.

◆ received_heartbeat_count()

EventCount64 rti::core::status::DataReaderProtocolStatus::received_heartbeat_count ( ) const
inline

The number of Heartbeats from a remote DataWriter received by a local DataReader.

◆ received_heartbeat_bytes()

EventCount64 rti::core::status::DataReaderProtocolStatus::received_heartbeat_bytes ( ) const
inline

The number of bytes of Heartbeats from a remote DataWriter received by a local DataReader.

◆ sent_ack_count()

EventCount64 rti::core::status::DataReaderProtocolStatus::sent_ack_count ( ) const
inline

The number of ACKs sent from a local DataReader to a matching remote DataWriter.

◆ sent_ack_bytes()

EventCount64 rti::core::status::DataReaderProtocolStatus::sent_ack_bytes ( ) const
inline

The number of bytes of ACKs sent from a local DataReader to a matching remote DataWriter.

◆ sent_nack_count()

EventCount64 rti::core::status::DataReaderProtocolStatus::sent_nack_count ( ) const
inline

The number of NACKs sent from a local DataReader to a matching remote DataWriter.

◆ sent_nack_bytes()

EventCount64 rti::core::status::DataReaderProtocolStatus::sent_nack_bytes ( ) const
inline

The number of bytes of NACKs sent from a local DataReader to a matching remote DataWriter.

◆ received_gap_count()

EventCount64 rti::core::status::DataReaderProtocolStatus::received_gap_count ( ) const
inline

The number of GAPs received from remote DataWriter to this DataReader.

◆ received_gap_bytes()

EventCount64 rti::core::status::DataReaderProtocolStatus::received_gap_bytes ( ) const
inline

The number of bytes of GAPs received from remote DataWriter to this DataReader.

◆ rejected_sample_count()

EventCount64 rti::core::status::DataReaderProtocolStatus::rejected_sample_count ( ) const
inline

The number of times a sample is rejected due to exceptions in the receive path.

This counter will always be 0 when using dds::core::policy::ReliabilityKind_def::BEST_EFFORT.

◆ first_available_sample_sequence_number()

rti::core::SequenceNumber rti::core::status::DataReaderProtocolStatus::first_available_sample_sequence_number ( ) const
inline

Sequence number of the first available sample in a matched DataWriters reliability queue.

Applicable only for reliable DataReaders, and when retrieving matched DataWriter statuses.

Updated upon receiving Heartbeat submessages from a matched reliable DataWriter.

◆ last_available_sample_sequence_number()

rti::core::SequenceNumber rti::core::status::DataReaderProtocolStatus::last_available_sample_sequence_number ( ) const
inline

Sequence number of the last available sample in a matched Datawriter's reliability queue.

Applicable only for reliable DataReaders, and when retrieving matched DataWriter statuses.

Updated upon receiving Heartbeat submessages from a matched reliable DataWriter.

◆ last_committed_sample_sequence_number()

rti::core::SequenceNumber rti::core::status::DataReaderProtocolStatus::last_committed_sample_sequence_number ( ) const
inline

Sequence number of the newest sample received from the matched DataWriter committed to the DataReader's queue.

Applicable only when retrieving matched DataWriter statuses.

For best-effort DataReaders, this is the sequence number of the latest sample received.

For reliable DataReaders, this is the sequence number of the latest sample that is available to be read or taken from the DataReader's queue.

◆ uncommitted_sample_count()

int32_t rti::core::status::DataReaderProtocolStatus::uncommitted_sample_count ( ) const
inline

Number of received samples that are not yet available to be read or taken, due to being received out of order.

Applicable only when retrieving matched DataWriter statuses.

◆ received_fragment_count()

int64_t rti::core::status::DataReaderProtocolStatus::received_fragment_count ( ) const
inline

The number of DATA_FRAG messages that have been received by this DataReader.

This statistic is incremented upon the receipt of each DATA_FRAG message. Fragments from duplicate samples do not count towards this statistic. Applicable only when data is fragmented.

◆ dropped_fragment_count()

int64_t rti::core::status::DataReaderProtocolStatus::dropped_fragment_count ( ) const
inline

The number of DATA_FRAG messages that have been dropped by a DataReader.

This statistic does not include malformed fragments. Applicable only when data is fragmented.

◆ reassembled_sample_count()

int64_t rti::core::status::DataReaderProtocolStatus::reassembled_sample_count ( ) const
inline

The number of fragmented samples that have been reassembled by a DataReader.

This statistic is incremented when all of the fragments which are required to reassemble an entire sample have been received. Applicable only when data is fragmented.

◆ sent_nack_fragment_count()

int64_t rti::core::status::DataReaderProtocolStatus::sent_nack_fragment_count ( ) const
inline

The number of NACK fragments that have been sent from a DataReader to a DataWriter.

NACK FRAG RTPS messages are sent when large data is used in conjunction with reliable communication. They have the same properties as NACK messages, but instead of applying to samples, they apply to fragments. Applicable only when data is fragmented.

◆ sent_nack_fragment_bytes()

int64_t rti::core::status::DataReaderProtocolStatus::sent_nack_fragment_bytes ( ) const
inline

The number of NACK fragment bytes that have been sent from a DataReader to a DataWriter.

NACK FRAG RTPS messages are sent when large data is used in conjunction with reliable communication. They have the same properties as NACK messages, but instead of applying to samples, they apply to fragments. Applicable only when data is fragmented.

◆ out_of_range_rejected_sample_count()

int64_t rti::core::status::DataReaderProtocolStatus::out_of_range_rejected_sample_count ( ) const
inline

The number of samples dropped by the DataReader due to received window is full and the sample is out-of-order.

When using dds::core::policy::ReliabilityKind_def::RELIABLE; if the DataReader received samples out-of-order, they are stored internally until the missing samples are received. The number of out-of-order samples that the DataReader can keep is set by rti::core::RtpsReliableReaderProtocol::receive_window_size. When the received window is full any out-of-order sample received will be dropped.