use parking_lot::RawMutex;
pub mod meta_publisher;
pub mod meta_subscriber;
pub mod meta_container;
pub mod meta_topic;
pub mod atomic;
pub mod full_sync;
pub mod log_topics;
pub trait OgreQueue<SlotType> {
fn new<IntoString: Into<String>>(queue_name: IntoString) -> Self;
fn enqueue(&self, element: SlotType) -> Option<SlotType>;
fn dequeue(&self) -> Option<SlotType>;
fn len(&self) -> usize;
#[inline(always)]
fn is_empty(&self) -> bool {
self.len() == 0
}
fn max_size(&self) -> usize;
fn debug_enabled(&self) -> bool;
fn metrics_enabled(&self) -> bool;
fn queue_name(&self) -> &str;
fn implementation_name(&self) -> &str;
fn interrupt(&self);
}
pub trait OgreBlockingQueue<'a, SlotType>: OgreQueue<SlotType> {
fn set_empty_guard_ref(&mut self, empty_guard_ref: &'a RawMutex);
fn try_enqueue(&self, element: SlotType) -> Option<SlotType>;
fn try_dequeue(&self) -> Option<SlotType>;
}