RTI Connext .NET API (legacy)  Version 6.1.2
DDS::DataReaderProtocolStatus Struct Reference

<<extension>> The status of a reader's internal protocol related metrics, like the number of samples received, filtered, rejected; and status of wire protocol traffic. More...

#include <managed_subscription.h>

Public Attributes

System::Int64 received_sample_count
 The number of samples received by a DataReader. More...
 
System::Int64 received_sample_count_change
 The change in DDS::DataReaderProtocolStatus::received_sample_count since the last time the status was read. More...
 
System::Int64 received_sample_bytes
 The number of bytes received by a DataReader. More...
 
System::Int64 received_sample_bytes_change
 The change in DDS::DataReaderProtocolStatus::received_sample_bytes since the last time the status was read. More...
 
System::Int64 duplicate_sample_count
 The number of samples from a remote DataWriter received, not for the first time, by a local DataReader. More...
 
System::Int64 duplicate_sample_count_change
 The change in DDS::DataReaderProtocolStatus::duplicate_sample_count since the last time the status was read. More...
 
System::Int64 duplicate_sample_bytes
 The number of bytes of samples from a remote DataWriter received, not for the first time, by a local DataReader. More...
 
System::Int64 duplicate_sample_bytes_change
 The change in DDS::DataReaderProtocolStatus::duplicate_sample_bytes since the last time the status was read. More...
 
System::Int64 filtered_sample_count
 [DEPRECATED]. See: DDS::DataReaderCacheStatus::time_based_filter_dropped_sample_count DDS::DataReaderCacheStatus::content_filter_dropped_sample_count More...
 
System::Int64 filtered_sample_count_change
 [DEPRECATED]. See: DDS::DataReaderCacheStatus::time_based_filter_dropped_sample_count DDS::DataReaderCacheStatus::content_filter_dropped_sample_count More...
 
System::Int64 filtered_sample_bytes
 [DEPRECATED]. See: DDS::DataReaderCacheStatus::time_based_filter_dropped_sample_count DDS::DataReaderCacheStatus::content_filter_dropped_sample_count More...
 
System::Int64 filtered_sample_bytes_change
 [DEPRECATED]. See: DDS::DataReaderCacheStatus::time_based_filter_dropped_sample_count DDS::DataReaderCacheStatus::content_filter_dropped_sample_count More...
 
System::Int64 received_heartbeat_count
 The number of Heartbeats from a remote DataWriter received by a local DataReader. More...
 
System::Int64 received_heartbeat_count_change
 The change in DDS::DataReaderProtocolStatus::received_heartbeat_count since the last time the status was read. More...
 
System::Int64 received_heartbeat_bytes
 The number of bytes of Heartbeats from a remote DataWriter received by a local DataReader. More...
 
System::Int64 received_heartbeat_bytes_change
 The change in DDS::DataReaderProtocolStatus::received_heartbeat_bytes since the last time the status was read. More...
 
System::Int64 sent_ack_count
 The number of ACKs sent from a local DataReader to a matching remote DataWriter. More...
 
System::Int64 sent_ack_count_change
 The change in DDS::DataReaderProtocolStatus::sent_ack_count since the last time the status was read. More...
 
System::Int64 sent_ack_bytes
 The number of bytes of ACKs sent from a local DataReader to a matching remote DataWriter. More...
 
System::Int64 sent_ack_bytes_change
 The change in DDS::DataReaderProtocolStatus::sent_ack_bytes since the last time the status was read. More...
 
System::Int64 sent_nack_count
 The number of NACKs sent from a local DataReader to a matching remote DataWriter. More...
 
System::Int64 sent_nack_count_change
 The change in DDS::DataReaderProtocolStatus::sent_nack_count since the last time the status was read. More...
 
System::Int64 sent_nack_bytes
 The number of bytes of NACKs sent from a local DataReader to a matching remote DataWriter. More...
 
System::Int64 sent_nack_bytes_change
 The change in DDS::DataReaderProtocolStatus::sent_nack_bytes since the last time the status was read. More...
 
System::Int64 received_gap_count
 The number of GAPs received from remote DataWriter to this DataReader. More...
 
System::Int64 received_gap_count_change
 The change in DDS::DataReaderProtocolStatus::received_gap_count since the last time the status was read. More...
 
System::Int64 received_gap_bytes
 The number of bytes of GAPs received from remote DataWriter to this DataReader. More...
 
System::Int64 received_gap_bytes_change
 The change in DDS::DataReaderProtocolStatus::received_gap_bytes since the last time the status was read. More...
 
System::Int64 rejected_sample_count
 The number of times a sample is rejected because it cannot be accepted by a reliable DataReader. More...
 
System::Int64 rejected_sample_count_change
 The change in DDS::DataReaderProtocolStatus::rejected_sample_count since the last time the status was read. More...
 
SequenceNumber_t first_available_sample_sequence_number
 Sequence number of the first available sample in a matched DataWriters reliability queue. More...
 
SequenceNumber_t last_available_sample_sequence_number
 Sequence number of the last available sample in a matched Datawriter's reliability queue. More...
 
SequenceNumber_t last_committed_sample_sequence_number
 Sequence number of the newest sample received from the matched DataWriter committed to the DataReader's queue. More...
 
System::Int32 uncommitted_sample_count
 Number of received samples that are not yet available to be read or taken, due to being received out of order. More...
 
System::Int64 out_of_range_rejected_sample_count
 The number of samples dropped by the DataReader due to received window is full and the sample is out-of-order. More...
 
System::Int64 received_fragment_count
 The number of DATA_FRAG messages that have been received by this DataReader. More...
 
System::Int64 dropped_fragment_count
 The number of DATA_FRAG messages that have been dropped by a DataReader. More...
 
System::Int64 reassembled_sample_count
 The number of fragmented samples that have been reassembled by a DataReader. More...
 
System::Int64 sent_nack_fragment_count
 The number of NACK fragments that have been sent from a DataReader to a DataWriter. More...
 
System::Int64 sent_nack_fragment_bytes
 The number of NACK fragment bytes that have been sent from a DataReader to a DataWriter. More...
 

Detailed Description

<<extension>> The status of a reader's internal protocol related metrics, like the number of samples received, filtered, rejected; and status of wire protocol traffic.

Entity:
DDS::DataReader

Member Data Documentation

◆ received_sample_count

System::Int64 DDS::DataReaderProtocolStatus::received_sample_count

The number of samples received by a DataReader.

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

If the DDS::DataReaderProtocolStatus is obtained using the DDS::DataReader::get_datareader_protocol_status operation then it will count samples from any DataWriter. If the DataReaderProtocolStatus is obtained using the DDS::DataReader::get_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 DDS::DataReaderProtocolStatus::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 DDS::DataReaderProtocolStatus::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_count_change

System::Int64 DDS::DataReaderProtocolStatus::received_sample_count_change

The change in DDS::DataReaderProtocolStatus::received_sample_count since the last time the status was read.

See also
DDS::DataReaderProtocolStatus::received_sample_count

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

System::Int64 DDS::DataReaderProtocolStatus::received_sample_bytes

The number of bytes received by a DataReader.

See also
DDS::DataReaderProtocolStatus::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.

◆ received_sample_bytes_change

System::Int64 DDS::DataReaderProtocolStatus::received_sample_bytes_change

The change in DDS::DataReaderProtocolStatus::received_sample_bytes since the last time the status was read.

See also
DDS::DataReaderProtocolStatus::received_sample_count_change

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

System::Int64 DDS::DataReaderProtocolStatus::duplicate_sample_count

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_count_change

System::Int64 DDS::DataReaderProtocolStatus::duplicate_sample_count_change

The change in DDS::DataReaderProtocolStatus::duplicate_sample_count since the last time the status was read.

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

◆ duplicate_sample_bytes

System::Int64 DDS::DataReaderProtocolStatus::duplicate_sample_bytes

The number of bytes 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_change

System::Int64 DDS::DataReaderProtocolStatus::duplicate_sample_bytes_change

The change in DDS::DataReaderProtocolStatus::duplicate_sample_bytes since the last time the status was read.

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

◆ filtered_sample_count

System::Int64 DDS::DataReaderProtocolStatus::filtered_sample_count

◆ filtered_sample_count_change

System::Int64 DDS::DataReaderProtocolStatus::filtered_sample_count_change

◆ filtered_sample_bytes

System::Int64 DDS::DataReaderProtocolStatus::filtered_sample_bytes

◆ filtered_sample_bytes_change

System::Int64 DDS::DataReaderProtocolStatus::filtered_sample_bytes_change

◆ received_heartbeat_count

System::Int64 DDS::DataReaderProtocolStatus::received_heartbeat_count

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

◆ received_heartbeat_count_change

System::Int64 DDS::DataReaderProtocolStatus::received_heartbeat_count_change

The change in DDS::DataReaderProtocolStatus::received_heartbeat_count since the last time the status was read.

◆ received_heartbeat_bytes

System::Int64 DDS::DataReaderProtocolStatus::received_heartbeat_bytes

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

◆ received_heartbeat_bytes_change

System::Int64 DDS::DataReaderProtocolStatus::received_heartbeat_bytes_change

The change in DDS::DataReaderProtocolStatus::received_heartbeat_bytes since the last time the status was read.

◆ sent_ack_count

System::Int64 DDS::DataReaderProtocolStatus::sent_ack_count

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

◆ sent_ack_count_change

System::Int64 DDS::DataReaderProtocolStatus::sent_ack_count_change

The change in DDS::DataReaderProtocolStatus::sent_ack_count since the last time the status was read.

◆ sent_ack_bytes

System::Int64 DDS::DataReaderProtocolStatus::sent_ack_bytes

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

◆ sent_ack_bytes_change

System::Int64 DDS::DataReaderProtocolStatus::sent_ack_bytes_change

The change in DDS::DataReaderProtocolStatus::sent_ack_bytes since the last time the status was read.

◆ sent_nack_count

System::Int64 DDS::DataReaderProtocolStatus::sent_nack_count

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

◆ sent_nack_count_change

System::Int64 DDS::DataReaderProtocolStatus::sent_nack_count_change

The change in DDS::DataReaderProtocolStatus::sent_nack_count since the last time the status was read.

◆ sent_nack_bytes

System::Int64 DDS::DataReaderProtocolStatus::sent_nack_bytes

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

◆ sent_nack_bytes_change

System::Int64 DDS::DataReaderProtocolStatus::sent_nack_bytes_change

The change in DDS::DataReaderProtocolStatus::sent_nack_bytes since the last time the status was read.

◆ received_gap_count

System::Int64 DDS::DataReaderProtocolStatus::received_gap_count

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

◆ received_gap_count_change

System::Int64 DDS::DataReaderProtocolStatus::received_gap_count_change

The change in DDS::DataReaderProtocolStatus::received_gap_count since the last time the status was read.

◆ received_gap_bytes

System::Int64 DDS::DataReaderProtocolStatus::received_gap_bytes

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

◆ received_gap_bytes_change

System::Int64 DDS::DataReaderProtocolStatus::received_gap_bytes_change

The change in DDS::DataReaderProtocolStatus::received_gap_bytes since the last time the status was read.

◆ rejected_sample_count

System::Int64 DDS::DataReaderProtocolStatus::rejected_sample_count

The number of times a sample is rejected because it cannot be accepted by a reliable DataReader.

Samples rejected by a reliable DataReader will be NACKed, and they will have to be resent by the DataWriter if they are still available in the DataWriter queue.

This counter will always be 0 when using DDS::ReliabilityQosPolicyKind::BEST_EFFORT_RELIABILITY_QOS.

◆ rejected_sample_count_change

System::Int64 DDS::DataReaderProtocolStatus::rejected_sample_count_change

The change in DDS::DataReaderProtocolStatus::rejected_sample_count since the last time the status was read.

This counter will always be 0 when using DDS::ReliabilityQosPolicyKind::BEST_EFFORT_RELIABILITY_QOS.

◆ first_available_sample_sequence_number

SequenceNumber_t DDS::DataReaderProtocolStatus::first_available_sample_sequence_number

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

SequenceNumber_t DDS::DataReaderProtocolStatus::last_available_sample_sequence_number

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

SequenceNumber_t DDS::DataReaderProtocolStatus::last_committed_sample_sequence_number

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

System::Int32 DDS::DataReaderProtocolStatus::uncommitted_sample_count

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.

◆ out_of_range_rejected_sample_count

System::Int64 DDS::DataReaderProtocolStatus::out_of_range_rejected_sample_count

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

When using DDS::ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; 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 DDS::RtpsReliableReaderProtocol_t::receive_window_size. When the received window is full any out-of-order sample received will be dropped.

◆ received_fragment_count

System::Int64 DDS::DataReaderProtocolStatus::received_fragment_count

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

System::Int64 DDS::DataReaderProtocolStatus::dropped_fragment_count

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

System::Int64 DDS::DataReaderProtocolStatus::reassembled_sample_count

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

System::Int64 DDS::DataReaderProtocolStatus::sent_nack_fragment_count

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

System::Int64 DDS::DataReaderProtocolStatus::sent_nack_fragment_bytes

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.