Trait AllocatedQueue

Source
pub trait AllocatedQueue<'a, D: Direction>:
    TryDequeue
    + Stream
    + Sized {
    // Required methods
    fn num_buffers(&self) -> usize;
    fn num_free_buffers(&self) -> usize;
    fn num_queued_buffers(&self) -> usize;
    fn free_buffers(self) -> Result<FreeBuffersResult<D, Self>, ReqbufsError>;
}
Expand description

Trait for a configured queue, i.e. a queue on which we can queue and dequeue buffers.

Required Methods§

Source

fn num_buffers(&self) -> usize

Returns the total number of buffers allocated for this queue.

Source

fn num_free_buffers(&self) -> usize

Returns the number of buffers that we can currently obtain and queue.

Source

fn num_queued_buffers(&self) -> usize

Returns the number of buffers currently queued (i.e. being processed or awaiting to be dequeued).

Source

fn free_buffers(self) -> Result<FreeBuffersResult<D, Self>, ReqbufsError>

Release all the allocated buffers and returns the queue to the Init state. If successful, any queued buffer is also returned as canceled. In case of failure, the queue and its currently queued buffers are lost.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, D: Direction, P: BufferHandles + 'a> AllocatedQueue<'a, D> for Queue<D, BuffersAllocated<P>>