Struct libosdp_sys::osdp_file_ops
source · #[repr(C)]pub struct osdp_file_ops {
pub arg: *mut c_void,
pub open: Option<unsafe extern "C" fn(arg: *mut c_void, file_id: c_int, size: *mut c_int) -> c_int>,
pub read: Option<unsafe extern "C" fn(arg: *mut c_void, buf: *mut c_void, size: c_int, offset: c_int) -> c_int>,
pub write: Option<unsafe extern "C" fn(arg: *mut c_void, buf: *const c_void, size: c_int, offset: c_int) -> c_int>,
pub close: Option<unsafe extern "C" fn(arg: *mut c_void) -> c_int>,
}Expand description
@brief OSDP File operations struct that needs to be filled by the CP/PD application and registered with LibOSDP using osdp_file_register_ops() before a file transfer command can be initiated.
Fields§
§arg: *mut c_void@brief A opaque pointer to private data that can be filled by the application which will be passed as the first argument for each of the below functions. Applications can keep their file context info such as the open file descriptors or any other private data here.
open: Option<unsafe extern "C" fn(arg: *mut c_void, file_id: c_int, size: *mut c_int) -> c_int>@brief Open a pre-agreed file
@param arg Opaque pointer to private data passed though by libosdp @param file_id File ID of pre-agreed file between this CP and PD @param size Size of the file that was opened (filled by application)
@retval 0 on success. -1 on errors.
read: Option<unsafe extern "C" fn(arg: *mut c_void, buf: *mut c_void, size: c_int, offset: c_int) -> c_int>@brief Read a chunk of file data into buffer
@param arg Opaque pointer to private data passed though by libosdp @param buf Buffer to store file data read @param size Number of bytes to read from file into buffer @param offset Number of bytes from the beginning of the file to start reading from.
@retval Number of bytes read, 0 on EOF, -ve on errors.
@note LibOSDP will guarantee that size and offset params are always positive and size is always greater than or equal to offset.
write: Option<unsafe extern "C" fn(arg: *mut c_void, buf: *const c_void, size: c_int, offset: c_int) -> c_int>@brief Write a chunk of file data from buffer to disk.
@param arg Opaque pointer to private data passed though by libosdp @param buf Buffer with file data to be stored to disk @param size Number of bytes to write to disk @param offset Number of bytes from the beginning of the file to start writing too.
@retval Number of bytes read, 0 on EOF, -ve on errors.
@note LibOSDP will guarantee that size and offset params are always positive and size is always greater than or equal to offset.
close: Option<unsafe extern "C" fn(arg: *mut c_void) -> c_int>@brief Close file that corresponds to a given file descriptor
@param arg Opaque pointer to private data passed though by libosdp
@retval 0 on success. -1 on errors.
Trait Implementations§
source§impl Clone for osdp_file_ops
impl Clone for osdp_file_ops
source§fn clone(&self) -> osdp_file_ops
fn clone(&self) -> osdp_file_ops
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more