SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
SWC::Core::QueueSafe< ItemT > Class Template Reference

#include <swcdb/core/QueueSafe.h>

+ Inheritance diagram for SWC::Core::QueueSafe< ItemT >:
+ Collaboration diagram for SWC::Core::QueueSafe< ItemT >:

Public Types

typedef ItemT value_type
 

Public Member Functions

SWC_CAN_INLINE QueueSafe () noexcept
 
 ~QueueSafe () noexcept
 
 QueueSafe (const QueueSafe &)=delete
 
 QueueSafe (QueueSafe &&other)
 
QueueSafeoperator= (const QueueSafe &)=delete
 
QueueSafeoperator= (QueueSafe &&)=delete
 
SWC_CAN_INLINE void push (const ItemT &item)
 
SWC_CAN_INLINE void push (ItemT &&item)
 
SWC_CAN_INLINE bool push_and_is_1st (const ItemT &item)
 
SWC_CAN_INLINE bool push_and_is_1st (ItemT &&item)
 
SWC_CAN_INLINE ItemT & front () noexcept
 
SWC_CAN_INLINE bool empty () noexcept
 
SWC_CAN_INLINE size_t size () noexcept
 
SWC_CAN_INLINE bool pop_and_more ()
 
SWC_CAN_INLINE bool pop (ItemT *item)
 

Private Types

typedef std::queue< ItemT > QBase
 

Private Attributes

MutexSptd m_mutex
 

Detailed Description

template<class ItemT>
class SWC::Core::QueueSafe< ItemT >

Definition at line 18 of file QueueSafe.h.

Member Typedef Documentation

◆ QBase

template<class ItemT >
typedef std::queue<ItemT> SWC::Core::QueueSafe< ItemT >::QBase
private

Definition at line 19 of file QueueSafe.h.

◆ value_type

template<class ItemT >
typedef ItemT SWC::Core::QueueSafe< ItemT >::value_type

Definition at line 23 of file QueueSafe.h.

Constructor & Destructor Documentation

◆ QueueSafe() [1/3]

template<class ItemT >
SWC_CAN_INLINE SWC::Core::QueueSafe< ItemT >::QueueSafe ( )
inlineexplicitnoexcept

Definition at line 26 of file QueueSafe.h.

◆ ~QueueSafe()

template<class ItemT >
SWC::Core::QueueSafe< ItemT >::~QueueSafe ( )
inlinenoexcept

Definition at line 28 of file QueueSafe.h.

◆ QueueSafe() [2/3]

template<class ItemT >
SWC::Core::QueueSafe< ItemT >::QueueSafe ( const QueueSafe< ItemT > &  )
delete

◆ QueueSafe() [3/3]

template<class ItemT >
SWC::Core::QueueSafe< ItemT >::QueueSafe ( QueueSafe< ItemT > &&  other)
inline

Definition at line 32 of file QueueSafe.h.

Member Function Documentation

◆ empty()

template<class ItemT >
SWC_CAN_INLINE bool SWC::Core::QueueSafe< ItemT >::empty ( )
inlinenoexcept

Definition at line 78 of file QueueSafe.h.

Referenced by SWC::Manager::MngdColumns::stop(), and SWC::Ranger::Range::wait_queue().

+ Here is the caller graph for this function:

◆ front()

template<class ItemT >
SWC_CAN_INLINE ItemT& SWC::Core::QueueSafe< ItemT >::front ( )
inlinenoexcept

Definition at line 72 of file QueueSafe.h.

Referenced by SWC::Manager::MngdColumns::run_actions(), and SWC::Ranger::CommitLog::Splitter::split().

+ Here is the caller graph for this function:

◆ operator=() [1/2]

template<class ItemT >
QueueSafe& SWC::Core::QueueSafe< ItemT >::operator= ( const QueueSafe< ItemT > &  )
delete

◆ operator=() [2/2]

template<class ItemT >
QueueSafe& SWC::Core::QueueSafe< ItemT >::operator= ( QueueSafe< ItemT > &&  )
delete

◆ pop()

template<class ItemT >
SWC_CAN_INLINE bool SWC::Core::QueueSafe< ItemT >::pop ( ItemT *  item)
inline

Definition at line 97 of file QueueSafe.h.

Referenced by SWC::Ranger::Range::_run_scan_queue(), SWC::FS::FileSystemBroker::send_request(), and SWC::FS::FileSystemBroker::stop().

+ Here is the caller graph for this function:

◆ pop_and_more()

template<class ItemT >
SWC_CAN_INLINE bool SWC::Core::QueueSafe< ItemT >::pop_and_more ( )
inline

Definition at line 90 of file QueueSafe.h.

Referenced by SWC::Manager::MngdColumns::run_actions(), and SWC::Ranger::CommitLog::Splitter::split().

+ Here is the caller graph for this function:

◆ push() [1/2]

template<class ItemT >
SWC_CAN_INLINE void SWC::Core::QueueSafe< ItemT >::push ( const ItemT &  item)
inline

Definition at line 42 of file QueueSafe.h.

Referenced by SWC::Ranger::Range::scan(), and SWC::FS::FileSystemBroker::send_request().

+ Here is the caller graph for this function:

◆ push() [2/2]

template<class ItemT >
SWC_CAN_INLINE void SWC::Core::QueueSafe< ItemT >::push ( ItemT &&  item)
inline

Definition at line 48 of file QueueSafe.h.

◆ push_and_is_1st() [1/2]

template<class ItemT >
SWC_CAN_INLINE bool SWC::Core::QueueSafe< ItemT >::push_and_is_1st ( const ItemT &  item)
inline

Definition at line 54 of file QueueSafe.h.

Referenced by SWC::Manager::MngdColumns::action(), SWC::Ranger::CommitLog::Splitter::loaded(), and SWC::Ranger::Range::scan().

+ Here is the caller graph for this function:

◆ push_and_is_1st() [2/2]

template<class ItemT >
SWC_CAN_INLINE bool SWC::Core::QueueSafe< ItemT >::push_and_is_1st ( ItemT &&  item)
inline

Definition at line 63 of file QueueSafe.h.

◆ size()

template<class ItemT >
SWC_CAN_INLINE size_t SWC::Core::QueueSafe< ItemT >::size ( )
inlinenoexcept

Definition at line 84 of file QueueSafe.h.

Referenced by SWC::Manager::MngdColumns::stop().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_mutex


The documentation for this class was generated from the following file: