ZBLOG

DataReaderListener is an abstract class defining the callbacks that will be triggered in response to state changes on the DataReader. By default, all these callbacks are empty and do nothing. The user should implement a specialization of this clas...

DataReaderListener 是一个抽象类,定义了在 DataReader 状态变化时将触发的回调方法。默认情况下,所有这些回调都是空实现,不执行任何操作。用户应当实现该类的特化版本,并重写需要的回调方法。未被重写的回调将保持为空实现。

以下是 DataReaderListener 定义的主要回调方法及其说明:

1. on_data_available()

  • 描述:当应用程序在 DataReader 上有新数据可用时调用此方法。
  • 注意事项:没有对该回调的调用进行排队,这意味着如果同时收到多个新数据更改,可能只会发出一次回调,而不是为每个更改发出一次。如果应用程序在此回调中处理接收到的数据,则必须继续读取数据直到没有新的更改可供读取。

2. on_subscription_matched()

  • 描述:当 DataReader 找到与主题匹配并具有共同分区和兼容 QoS 的 DataWriter 时触发;或者当与之前认为已匹配的 DataWriter 失去匹配关系时也会触发。
  • 补充信息:它还会在一个已匹配的 DataWriter 改变其 DataWriterQos 时被触发。

3. on_requested_deadline_missed()

  • 描述:当 DataReader 在其配置的 Deadline 周期内未能接收到数据时调用此方法。
  • 特点:对于每个超出的 Deadline 周期和数据实例都会调用这个回调。

4. on_requested_incompatible_qos()

  • 描述:当找到一个与主题匹配且具有共同分区,但 QoS 与在 DataReader 中定义的不兼容的数据写入者时,会触发此方法。

5. on_liveliness_changed()

  • 描述:当已匹配的 DataWriter 的活跃状态发生变化时触发。例如,一个不活动的 DataWriter 变为活跃,或反之亦然。

6. on_sample_rejected()

  • 描述:收到的数据样本被拒绝,此时会调用此方法。更多信息请参考 SampleRejectedStatus

7. on_sample_lost()

  • 描述:某个数据样本丢失,将永远无法接收。此时会调用此方法。更多信息请参考 SampleLostStatus

总结

开发人员可以通过继承 DataReaderListener 类并实现所需的方法来响应各种事件。这使得应用程序能够处理来自数据源的新信息、监控连接状态,以及管理QoS相关问题等。同时,由于大多数回调默认是空实现,因此开发者可以根据具体需求选择性地覆盖这些回调,以提高灵活性和控制力。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:http://sdn.0voice.com/?id=7007

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?