DataWriterListener
是一个抽象类,用于定义在 DataWriter
状态变化时会触发的回调。默认情况下,所有这些回调都是空的,不执行任何操作。用户应实现该类的具体化,通过重写所需的回调来满足应用需求。未被重写的回调将保持其空实现。
回调函数说明
DataWriterListener
定义了以下回调:
on_publication_matched():
- 描述:当
DataWriter
找到与其主题(Topic)匹配的数据读取器(DataReader),并且两者具有共同分区和兼容的 QoS 时,该方法被调用。此外,当之前匹配的 DataReader 不再匹配时也会触发此回调。 - 作用:允许应用程序监控和处理数据写入者与数据读取者之间的匹配状态变化。
- 描述:当
on_offered_deadline_missed():
- 描述:当
DataWriter
未能在其配置的截止期限内提供数据时,会调用此方法。这对于每个截止期限和未提供数据的数据实例都会触发。 - 作用:通知应用程序 deadline 失效情况,可能需要采取措施以确保及时发送数据。
- 描述:当
on_offered_incompatible_qos():
- 描述:当
DataWriter
找到一个匹配的DataReader
,但是请求的 QoS 与定义在DataWriter
上的不兼容时,会调用该方法。 - 作用:使应用程序能够识别和处理 QoS 不匹配的问题,从而可能需要调整 QoS 设置。
- 描述:当
on_liveliness_lost():
- 描述:当
DataWriter
没有遵循其配置中的活跃性要求时,此方法被调用。因此,所有的数据读取器将视该DataWriter
为不再活动。 - 作用:帮助监测系统中组件间活跃性的丧失,便于进行错误处理或资源管理。
- 描述:当
on_unacknowledged_sample_removed():
- 描述:当
DataWriter
删除一个尚未被所有已匹配的数据读取器确认过的样本时,将调用此方法。 - 作用:可以用来跟踪或记录哪些样本没有被确认,从而可能导致数据一致性问题或者需要进一步调查。
- 描述:当
总结
实现适合自己应用场景所需的方法覆盖是使用 DataWriterListener
的关键部分。通过重写这些回调,可以更好地控制和响应系统中的事件,以增强可靠性和性能。同时,在开发过程中要考虑到默认实现不会执行任何操作,因此必须根据需求显式地添加逻辑。
内容由零声教学AI助手提供,问题来源于学员提问