Struct BlockingQueue

Source
pub struct BlockingQueue<E>
where E: Send + Sync,
{ /* private fields */ }
Expand description

Blocking bounded queue

E: Send + Sync - the element type This is a multiple producers / multiple consumers blocking bounded queue. Reference: Producer-Consumer

Implementations§

Source§

impl<E> BlockingQueue<E>
where E: Send + Sync,

Source

pub fn new(capacity: usize) -> BlockingQueue<E>

Create a new queue with size capacity

use command_executor::blocking_queue::BlockingQueue;
let q: BlockingQueue<i32> = BlockingQueue::new(4);
Source

pub fn len(&self) -> usize

The current length of the queue. Note that the reported length is correct at the time of checking, the actual length may change between the call and the access to the result value. Should be used for diagnostic and monitoring only.

use command_executor::blocking_queue::BlockingQueue;
let q: BlockingQueue<i32> = BlockingQueue::new(4);
q.enqueue(11);
assert_eq!(q.len(), 1);
Source

pub fn capacity(&self) -> usize

The declared capacity of the queue. May be smaller than the actual capacity of the actual storage

Source

pub fn is_empty(&self) -> bool

Indication if the queue is empty in this point of time. Should be used for diagnostic and monitoring only.

Source

pub fn is_full(&self) -> bool

Indication if the queue is full in this point of time. Should be used for diagnostic and monitoring only.

Source

pub fn wait_empty(&self, timeout: Duration) -> bool

Wait until the queue is empty.

Note that the empty state is temporary. This method is mostly useful when we know that no elements are to be enqueued and we want an indication of completion.

Source

pub fn enqueue(&self, element: E)

Enqueue an element. When the queue is full will block until space available.

Source

pub fn try_enqueue(&self, element: E, timeout: Duration) -> Option<E>

Enqueue an element with timeout. When timeout is exceeded return the element to caller.

Source

pub fn dequeue(&self) -> Option<E>

Dequeue an element from the queue. When the queue is empty will block until an element is available

Source

pub fn try_dequeue(&self, timeout: Duration) -> Option<E>

Dequeue and element from the queue with timeout.

Auto Trait Implementations§

§

impl<E> !Freeze for BlockingQueue<E>

§

impl<E> RefUnwindSafe for BlockingQueue<E>

§

impl<E> Send for BlockingQueue<E>

§

impl<E> Sync for BlockingQueue<E>

§

impl<E> Unpin for BlockingQueue<E>
where E: Unpin,

§

impl<E> UnwindSafe for BlockingQueue<E>

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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

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

Initializes a with the given initializer. Read more
Source§

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

Dereferences the given pointer. Read more
Source§

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

Mutably dereferences the given pointer. Read more
Source§

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.