RTI Connext .NET API (legacy)  Version 6.1.1
DDS::PublicationMatchedStatus Struct Reference

PUBLICATION_MATCHED_STATUS. More...

#include <managed_publication.h>

Public Attributes

System::Int32 total_count
 The total cumulative number of times that this DDS::DataWriter discovered a "match" with a DDS::DataReader. More...
 
System::Int32 total_count_change
 The changes in total_count since the last time the listener was called or the status was read. More...
 
System::Int32 current_count
 The current number of DataReaders with which this DDS::DataWriter is matched. More...
 
System::Int32 current_count_peak
 <<extension>> Greatest number of DataReaders that matched this DDS::DataWriter simultaneously. More...
 
System::Int32 current_count_change
 The change in current_count since the last time the listener was called or the status was read. More...
 
InstanceHandle_t last_subscription_handle
 This InstanceHandle can be used to look up which remote DDS::DataReader was the last to cause this DataWriter's status to change, using DDS::DataWriter::get_matched_subscription_data. More...
 

Detailed Description

PUBLICATION_MATCHED_STATUS.

A "match" happens when the DDS::DataWriter finds a DDS::DataReader with the same DDS::Topic, same or compatible data type, and requested QoS that is compatible with that offered by the DDS::DataWriter. (For information on compatible data types, see the Extensible Types Guide.)

This status is also changed (and the listener, if any, called) when a match is ended. A local DDS::DataWriter will become "unmatched" from a remote DDS::DataReader when that DDS::DataReader goes away for any of the following reasons:

This status may reflect changes from multiple match or unmatch events, and the DDS::PublicationMatchedStatus::current_count_change can be used to determine the number of changes since the listener was called back or the status was checked.

Member Data Documentation

◆ total_count

System::Int32 DDS::PublicationMatchedStatus::total_count

The total cumulative number of times that this DDS::DataWriter discovered a "match" with a DDS::DataReader.

This number increases whenever a new match is discovered. It does not decrease when an existing match goes away for any of the reasons described in DDS::PublicationMatchedStatus.

◆ total_count_change

System::Int32 DDS::PublicationMatchedStatus::total_count_change

The changes in total_count since the last time the listener was called or the status was read.

Note that this number will never be negative (because it's the total number of times this DataWriter ever matched with a DataReader).

◆ current_count

System::Int32 DDS::PublicationMatchedStatus::current_count

The current number of DataReaders with which this DDS::DataWriter is matched.

This number increases when a new match is discovered and decreases when an existing match goes away for any of the reasons described in DDS::PublicationMatchedStatus.

◆ current_count_peak

System::Int32 DDS::PublicationMatchedStatus::current_count_peak

<<extension>> Greatest number of DataReaders that matched this DDS::DataWriter simultaneously.

That is, there was no moment in time when more than this many DataReaders matched this DataWriter. (As a result, total_count can be higher than current_count_peak.)

◆ current_count_change

System::Int32 DDS::PublicationMatchedStatus::current_count_change

The change in current_count since the last time the listener was called or the status was read.

Note that a negative current_count_change means that one or more DataReaders have become unmatched for one or more of the reasons described in DDS::PublicationMatchedStatus.

◆ last_subscription_handle

InstanceHandle_t DDS::PublicationMatchedStatus::last_subscription_handle

This InstanceHandle can be used to look up which remote DDS::DataReader was the last to cause this DataWriter's status to change, using DDS::DataWriter::get_matched_subscription_data.

If the DataReader no longer matches this DataWriter due to any of the reasons in DDS::PublicationMatchedStatus except incompatible QoS, then the DataReader has been purged from this DataWriter's DomainParticipant discovery database. (See the "What is Discovery?" section of the User's Manual.) In that case, the DDS::DataWriter::get_matched_subscription_data method will not be able to return information about the DataReader. The only way to get information about the lost DataReader is if you cached the information previously.