#[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

source§

fn clone(&self) -> osdp_file_ops

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for osdp_file_ops

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Copy for osdp_file_ops

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.