#[repr(C)]pub struct PamojaTransportCallbacks {
pub connect: Option<unsafe extern "C" fn(user_data: *mut c_void) -> PamojaStatus>,
pub send: Option<unsafe extern "C" fn(user_data: *mut c_void, topic: *const c_char, payload: *const u8, payload_len: usize) -> PamojaStatus>,
pub subscribe: Option<unsafe extern "C" fn(user_data: *mut c_void, topic: *const c_char) -> PamojaStatus>,
pub recv: Option<unsafe extern "C" fn(user_data: *mut c_void, out_message: *mut *mut PamojaMessage) -> PamojaStatus>,
pub release: Option<unsafe extern "C" fn(user_data: *mut c_void)>,
}Expand description
The functions a host supplies to stand as a transport.
connect, send, and subscribe are required. recv is null for a link that
only sends. release is null when user_data needs no cleanup. The threading
rules are in the module documentation.
Fields§
§connect: Option<unsafe extern "C" fn(user_data: *mut c_void) -> PamojaStatus>Establishes the link. Called once per connect on the transport.
send: Option<unsafe extern "C" fn(user_data: *mut c_void, topic: *const c_char, payload: *const u8, payload_len: usize) -> PamojaStatus>Publishes payload_len bytes at payload to the null-terminated UTF-8
topic. Both pointers are valid only for the duration of the call.
subscribe: Option<unsafe extern "C" fn(user_data: *mut c_void, topic: *const c_char) -> PamojaStatus>Subscribes to the null-terminated UTF-8 topic filter, valid only for the
duration of the call.
recv: Option<unsafe extern "C" fn(user_data: *mut c_void, out_message: *mut *mut PamojaMessage) -> PamojaStatus>Waits for the next message on a subscribed topic and stores it in
out_message, or stores null once the link has ended. Null for a link that
only sends.
release: Option<unsafe extern "C" fn(user_data: *mut c_void)>Frees whatever user_data refers to, once nothing will call the host again.
Trait Implementations§
Source§impl Clone for PamojaTransportCallbacks
impl Clone for PamojaTransportCallbacks
Source§fn clone(&self) -> PamojaTransportCallbacks
fn clone(&self) -> PamojaTransportCallbacks
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more