天天看点

RTI_DDS自定义插件开发 9 API NDDS_Transport_Unshare_RecvResource_Fcn_rrEA

由NDDS调用以初始化传输插件,将消息发送到由传入的地址/端口定义的目标。返回一个传输插件定义(transport-specific)的数据结构(SendResource)的句柄,NDDS它来发送消息。

当这个方法被调用时,NDDS期望传输插件准备通过它的接口发送消息,通过作为参数传递的地址和端口定义的特定目标。所以Transport Plugin必须做它需要做的事情来初始化特定传输硬件/软件的发送端。如果地址/端口是传输插件无法到达的目的地,则此调用应该无法创建SendResource。

transport-plugin实现者可以将SendResource想象为插件的send()函数将数据发送到address / port / transport_priority组合所需的所有数据/结构的集合。这个函数应该创建这些数据结构,然后初始化Transport Plugin来完成。

对于基于物理传输的传输插件,在发送数据之前需要在发送和接收应用程序之间建立连接,如果接收端尚未准备好接受连接,则此调用应返回部分初始化的SendResource。对于这些传输,如果在该方法中没有成功建立连接,应该检查SendResource的连接状态并在send()调用中完成。有关更多讨论,请参阅在接​​收器初始化之前发送面向连接的传输。

sendresource_out参数是传输插件为NDDS提供处理信息(数据结构)的一种方式,NDDS在需要将消息发送到插件时需要将其传递回传输插件。数据结构中的内容将针对每个传输 - 插件实现而特定。

transport_priority_in参数在DDS级别配置,DataWriter的QoS,当需要为DataWriter创建SendResource时,由NDDS传递到Transport Plugin。 transport_priority_in的值如何被Transport Plugin解释或使用,将针对每个实现而特定。大多数实现将完全忽略该值

其他人可以使用该值来设置服务的质量或等级(QoS,CoS),以便由该插件发送到特定目的地的消息将具有更高或更低的优先级。

前提

dest_address_in不是NULL。

dest_port_in不是NDDS_TRANSPORT_PORT_INVALID。

后置条件

如果返回1,NDDS可以使用返回的的SendResource在插件的send()调用中来发送消息。

如果返回0,则传输已确定它不能发送到给定的目标,并且没有创建SendResource。

参数

self << in >>指向Transport Plugin实例的指针。

sendresource_out << out >>通过此调用创建的SendResource将通过此参数返回。

dest_address_in << in >>将发送消息的接口的目标地址。

dest_port_in << in >>目标端口。

transport_priority_in << in >>在DataWriter中配置并在不修改传输插件的情况下通过NDDS传递的值。

返回

1成功

否则为0。

继续阅读