pub struct Queue<S, C> { /* private fields */ }
Expand description
A single queue, holding two subqueues (sending and completion). Objects of type S are sent across the sending queue, and completions of type C are sent back.
Implementations§
Source§impl<S: Copy, C: Copy> Queue<S, C>
impl<S: Copy, C: Copy> Queue<S, C>
Sourcepub fn handle(&self) -> &ObjectHandle
pub fn handle(&self) -> &ObjectHandle
Get a handle to the internal object that holds the queue data.
Sourcepub fn init(obj: &ObjectHandle, sub_queue_len: usize, com_queue_len: usize)
pub fn init(obj: &ObjectHandle, sub_queue_len: usize, com_queue_len: usize)
Create a new Twizzler queue object.
Sourcepub fn submit(
&self,
id: u32,
item: S,
flags: SubmissionFlags,
) -> Result<(), QueueError>
pub fn submit( &self, id: u32, item: S, flags: SubmissionFlags, ) -> Result<(), QueueError>
Submit an item of type S across the sending subqueue, with a given id.
Sourcepub fn receive(&self, flags: ReceiveFlags) -> Result<(u32, S), QueueError>
pub fn receive(&self, flags: ReceiveFlags) -> Result<(u32, S), QueueError>
Receive an item and request id from the sending subqueue.
Sourcepub fn complete(
&self,
id: u32,
item: C,
flags: SubmissionFlags,
) -> Result<(), QueueError>
pub fn complete( &self, id: u32, item: C, flags: SubmissionFlags, ) -> Result<(), QueueError>
Submit a completion item of type C across the completion subqueue.
Sourcepub fn get_completion(
&self,
flags: ReceiveFlags,
) -> Result<(u32, C), QueueError>
pub fn get_completion( &self, flags: ReceiveFlags, ) -> Result<(u32, C), QueueError>
Receive a completion item and id from the completion subqueue.
Sourcepub fn setup_read_com_sleep(&self) -> ThreadSyncSleep
pub fn setup_read_com_sleep(&self) -> ThreadSyncSleep
Setup a sleep operation for reading the completion subqueue.
Sourcepub fn setup_read_sub_sleep(&self) -> ThreadSyncSleep
pub fn setup_read_sub_sleep(&self) -> ThreadSyncSleep
Setup a sleep operation for reading the sending subqueue.
Sourcepub fn setup_write_sub_sleep(&self) -> ThreadSyncSleep
pub fn setup_write_sub_sleep(&self) -> ThreadSyncSleep
Setup a sleep operation for writing the sending subqueue.
Sourcepub fn setup_write_com_sleep(&self) -> ThreadSyncSleep
pub fn setup_write_com_sleep(&self) -> ThreadSyncSleep
Setup a sleep operation for writing the completion subqueue.
Trait Implementations§
Auto Trait Implementations§
impl<S, C> !Freeze for Queue<S, C>
impl<S, C> !ObjSafe for Queue<S, C>
impl<S, C> !RefUnwindSafe for Queue<S, C>
impl<S, C> Send for Queue<S, C>
impl<S, C> Sync for Queue<S, C>
impl<S, C> Unpin for Queue<S, C>
impl<S, C> UnwindSafe for Queue<S, C>where
S: RefUnwindSafe,
C: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more