Struct spa_loop_methods

Source
#[repr(C)]
pub struct spa_loop_methods { pub version: u32, pub add_source: Option<unsafe extern "C" fn(object: *mut c_void, source: *mut spa_source) -> c_int>, pub update_source: Option<unsafe extern "C" fn(object: *mut c_void, source: *mut spa_source) -> c_int>, pub remove_source: Option<unsafe extern "C" fn(object: *mut c_void, source: *mut spa_source) -> c_int>, pub invoke: Option<unsafe extern "C" fn(object: *mut c_void, func: spa_invoke_func_t, seq: u32, data: *const c_void, size: usize, block: bool, user_data: *mut c_void) -> c_int>, }
Expand description

Register sources and work items to an event loop

Fields§

§version: u32§add_source: Option<unsafe extern "C" fn(object: *mut c_void, source: *mut spa_source) -> c_int>

Add a source to the loop. Must be called from the loop’s own thread.

\param[in] object The callbacks data. \param[in] source The source. \return 0 on success, negative errno-style value on failure.

§update_source: Option<unsafe extern "C" fn(object: *mut c_void, source: *mut spa_source) -> c_int>

Update the source io mask. Must be called from the loop’s own thread.

\param[in] object The callbacks data. \param[in] source The source. \return 0 on success, negative errno-style value on failure.

§remove_source: Option<unsafe extern "C" fn(object: *mut c_void, source: *mut spa_source) -> c_int>

Remove a source from the loop. Must be called from the loop’s own thread.

\param[in] object The callbacks data. \param[in] source The source. \return 0 on success, negative errno-style value on failure.

§invoke: Option<unsafe extern "C" fn(object: *mut c_void, func: spa_invoke_func_t, seq: u32, data: *const c_void, size: usize, block: bool, user_data: *mut c_void) -> c_int>

Invoke a function in the context of this loop. May be called from any thread and multiple threads at the same time. If called from the loop’s thread, all callbacks previously queued with invoke() will be run synchronously, which might cause unexpected reentrancy problems.

\param[in] object The callbacks data. \param func The function to be invoked. \param seq An opaque sequence number. This will be made available to func. \param[in] data Data that will be copied into the internal ring buffer and made available to func. Because this data is copied, it is okay to pass a pointer to a local variable, but do not pass a pointer to an object that has identity. \param size The size of data to copy. \param block If \true, do not return until func has been called. Otherwise, returns immediately. Passing \true does not risk a deadlock because the data thread is never allowed to wait on any other thread. It the loop requires some locking, it must be acquired before calling this function because a blocking invoke will release the lock while blocking. \param user_data An opaque pointer passed to func. \return -EPIPE if the internal ring buffer filled up, if block is \false, 0 if seq was SPA_ID_INVALID or seq with the ASYNC flag set or the return value of func otherwise.

Trait Implementations§

Source§

impl Clone for spa_loop_methods

Source§

fn clone(&self) -> spa_loop_methods

Returns a duplicate 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 spa_loop_methods

Source§

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

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

impl PartialEq for spa_loop_methods

Source§

fn eq(&self, other: &spa_loop_methods) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for spa_loop_methods

Source§

impl Eq for spa_loop_methods

Source§

impl StructuralPartialEq for spa_loop_methods

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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,

Source§

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>,

Source§

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>,

Source§

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.