天天看点

RTI_DDS自定义插件开发 6 监听者

传输插件用于通知传输插件中动态更改的NDDS内核的API。

数据结构

struct  NDDS_Transport_Listener
           

用于保存由Transport-Plugin实例调用的回调函数的结构,用于通知Transport Plugin状态发生动态变化。

类型定义

typedef void(*	NDDS_Transport_Listener_Interface_Changed_Callback )(void * listener_data_in, NDDS_Transport_Plugin * plugin_in, NDDS_Transport_Interface_t * interface_changed_in)
由Transport-Plugin实例调用的回调函数通知它可以使用的接口数已经改变。 
           

详细说明

    传输插件用于通知传输插件中动态更改的NDDS内核的API。

    NDDS将使用Transport Plugin注册一个结构NDDS_Transport_Listener 。 然后,在Transport Plugin状态发生动态变化时,插件应调用结构中的相应函数以通知NDDS该变化。

    例如,如果传输插件可以动态检测其管理的接口何时启用/禁用,出现或消失,因为它们在基于IP的传输中可能会在启用/禁用NIC卡或已连接和取消连接时进行,则该插件应允许NDDS知道这已经发生,NDDS有机会使用这些新接口或停止使用丢失的通信接口。

注意:该功能尚未由NDDS内核实施。 也就是说,NDDS核心无法基于Transport Plugin中的动态更改采取操作。 因此它将永远不会向Transport Plugin注册侦听器(2005年3月)。

Typedef文档

typedef void(* NDDS_Transport_Listener_Interface_Changed_Callback)(void * listener_data_in, NDDS_Transport_Plugin * plugin_in,NDDS_Transport_Interface_t * interface_changed_in)

由Transport-Plugin实例调用的回调函数通知它可以使用的接口数已经改变。

参数
listener_data_in << in >>听众数据。
plugin_in << in >>调用此回调的Transport-Plugin实例。
interface_changed_in << in >>触发回调的已更改界面。
MT安全性:
多线程 安全此回调的实现者必须确保它是多线程安全的,以便调用者(传输插件实例)不必担心多线程安全问题。

继续阅读