这个状态会在 DataWriter 找到一个与其主题匹配、具有共同分区且 QoS 兼容的 DataReader,或者停止与先前被视为匹配的 DataReader 匹配时发生变化。这个状态被称为 PublicationMatchedStatus。
以下是状态数据成员的列表:
数据成员名称
数据成员名称 | 类型 |
---|---|
total_count | int32_t |
total_count_change | int32_t |
current_count | int32_t |
current_count_change | int32_t |
last_subscription_handle | InstanceHandle_t |
数据成员详细说明:
total_count:
- 说明: 发现的所有远程 DataReaders 的累计总数,这些 DataReaders 发布相同主题并具有共同分区和兼容的 QoS。这些数据读取者可能当前不都是处于匹配状态。
total_count_change:
- 说明: 自上次调用
on_publication_matched()
或读取状态以来,total_count
的变化值。此值只能为零或正值,表示自上次检查后的新增数据读取者发现。
- 说明: 自上次调用
current_count:
- 说明: 当前与该 DataWriter 匹配的远程 DataReaders 的数量。这代表了在特定时刻实际正在进行通信的数据读取者数量。
current_count_change:
- 说明: 自上次调用
on_publication_matched()
或读取状态以来,current_count
的变化值。此值可以是正值(表示新增加了匹配的数据读取者)或负值(表示有匹配的数据读取者失去了连接)。
- 说明: 自上次调用
last_subscription_handle:
- 说明: 最后一个与该 DataWriter 匹配的 DataReader 的句柄。如果从未发生过匹配,则其值将为
c_InstanceHandle_Unknown
,这表示没有已知的实例句柄。
- 说明: 最后一个与该 DataWriter 匹配的 DataReader 的句柄。如果从未发生过匹配,则其值将为
总结
该状态用于监控远程 DataReaders 与 DataWriter 之间的匹配情况。在实时数据传输中,这种监控机制确保系统能够及时识别出新的数据消费者,以及消费者是否仍然有效,从而影响整体通信效率和可靠性。当某个订阅者断开连接或出现QoS不兼容时,相关计数会相应更新,有助于开发人员理解系统动态以及需要采取的相应措施。
内容由零声教学AI助手提供,问题来源于学员提问