由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。