Skip to main content

Callbacks

Struct Callbacks 

Source
#[repr(C)]
pub struct Callbacks { pub context: *mut c_void, pub start_thread: unsafe extern "C" fn(context: *mut c_void, arg: *const c_void), pub on_new_session: unsafe extern "C" fn(context: *mut c_void, session: *const Session), pub on_requests: unsafe extern "C" fn(context: *mut c_void, requests: *mut Request, request_count: usize), pub log: unsafe extern "C" fn(context: *mut c_void, message: *const c_char, message_len: usize), }

Fields§

§context: *mut c_void

An opaque context object retained by this library. The library will pass this back into all callbacks. The memory pointed to by context must last until block_server_delete is called.

§start_thread: unsafe extern "C" fn(context: *mut c_void, arg: *const c_void)

Starts a thread. The implementation must call block_server_thread on this newly created thread, providing arg. Once this completes, the implementation must NOT use the block server for which the thread was started, as it could be destroyed at any time. The implementation must call block_server_thread_release after block_server_thread completes (but before block_server_delete is called).

§on_new_session: unsafe extern "C" fn(context: *mut c_void, session: *const Session)

Notifies the implementation of a new session. The implementation must call block_server_session_run on a separate thread, and must call block_server_session_release after block_server_session_run (but before block_server_delete is called).

§on_requests: unsafe extern "C" fn(context: *mut c_void, requests: *mut Request, request_count: usize)

Submits a batch of requests to be handled by the implementation. The implementation must not retain references to requests after it returns. The implementation must ensure that block_server_send_reply is called exactly once with the request ID of each entry in requests, regardless of its status; this call can be asynchronous but must occur before block_server_delete is called. Note that a reply must be sent for every request before shutdown.

§log: unsafe extern "C" fn(context: *mut c_void, message: *const c_char, message_len: usize)

Logs message to the implementation’s logger. The implementation must not retain references to message.

Trait Implementations§

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, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. 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.

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V