天天看點

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。

繼續閱讀