Public Member Functions | Private Attributes | List of all members
dai::LockingQueue< T > Class Template Reference

#include <LockingQueue.hpp>

Public Member Functions

bool consumeAll (std::function< void(T &)> callback)
 
void destruct ()
 
bool empty () const
 
bool front (T &value)
 
bool getBlocking () const
 
unsigned getMaxSize () const
 
 LockingQueue ()=default
 
 LockingQueue (unsigned maxSize, bool blocking=true)
 
bool push (T const &data)
 
void setBlocking (bool bl)
 
void setMaxSize (unsigned sz)
 
bool tryPop (T &value)
 
template<typename Rep , typename Period >
bool tryWaitAndPop (T &value, std::chrono::duration< Rep, Period > timeout)
 
template<typename Rep , typename Period >
bool tryWaitAndPush (T const &data, std::chrono::duration< Rep, Period > timeout)
 
bool waitAndConsumeAll (std::function< void(T &)> callback)
 
template<typename Rep , typename Period >
bool waitAndConsumeAll (std::function< void(T &)> callback, std::chrono::duration< Rep, Period > timeout)
 
bool waitAndPop (T &value)
 
void waitEmpty ()
 
 ~LockingQueue ()=default
 

Private Attributes

bool blocking = true
 
bool destructed {false}
 
std::mutex guard
 
unsigned maxSize = std::numeric_limits<unsigned>::max()
 
std::queue< T > queue
 
std::condition_variable signalPop
 
std::condition_variable signalPush
 

Detailed Description

template<typename T>
class dai::LockingQueue< T >

Definition at line 12 of file LockingQueue.hpp.

Constructor & Destructor Documentation

◆ LockingQueue() [1/2]

template<typename T >
dai::LockingQueue< T >::LockingQueue ( )
default

◆ LockingQueue() [2/2]

template<typename T >
dai::LockingQueue< T >::LockingQueue ( unsigned  maxSize,
bool  blocking = true 
)
inlineexplicit

Definition at line 15 of file LockingQueue.hpp.

◆ ~LockingQueue()

template<typename T >
dai::LockingQueue< T >::~LockingQueue ( )
default

Member Function Documentation

◆ consumeAll()

template<typename T >
bool dai::LockingQueue< T >::consumeAll ( std::function< void(T &)>  callback)
inline

Definition at line 90 of file LockingQueue.hpp.

◆ destruct()

template<typename T >
void dai::LockingQueue< T >::destruct ( )
inline

Definition at line 41 of file LockingQueue.hpp.

◆ empty()

template<typename T >
bool dai::LockingQueue< T >::empty ( ) const
inline

Definition at line 163 of file LockingQueue.hpp.

◆ front()

template<typename T >
bool dai::LockingQueue< T >::front ( T &  value)
inline

Definition at line 168 of file LockingQueue.hpp.

◆ getBlocking()

template<typename T >
bool dai::LockingQueue< T >::getBlocking ( ) const
inline

Definition at line 35 of file LockingQueue.hpp.

◆ getMaxSize()

template<typename T >
unsigned dai::LockingQueue< T >::getMaxSize ( ) const
inline

Definition at line 29 of file LockingQueue.hpp.

◆ push()

template<typename T >
bool dai::LockingQueue< T >::push ( T const &  data)
inline

Definition at line 106 of file LockingQueue.hpp.

◆ setBlocking()

template<typename T >
void dai::LockingQueue< T >::setBlocking ( bool  bl)
inline

Definition at line 23 of file LockingQueue.hpp.

◆ setMaxSize()

template<typename T >
void dai::LockingQueue< T >::setMaxSize ( unsigned  sz)
inline

Definition at line 17 of file LockingQueue.hpp.

◆ tryPop()

template<typename T >
bool dai::LockingQueue< T >::tryPop ( T &  value)
inline

Definition at line 178 of file LockingQueue.hpp.

◆ tryWaitAndPop()

template<typename T >
template<typename Rep , typename Period >
bool dai::LockingQueue< T >::tryWaitAndPop ( T &  value,
std::chrono::duration< Rep, Period >  timeout 
)
inline

Definition at line 208 of file LockingQueue.hpp.

◆ tryWaitAndPush()

template<typename T >
template<typename Rep , typename Period >
bool dai::LockingQueue< T >::tryWaitAndPush ( T const &  data,
std::chrono::duration< Rep, Period >  timeout 
)
inline

Definition at line 134 of file LockingQueue.hpp.

◆ waitAndConsumeAll() [1/2]

template<typename T >
bool dai::LockingQueue< T >::waitAndConsumeAll ( std::function< void(T &)>  callback)
inline

Definition at line 72 of file LockingQueue.hpp.

◆ waitAndConsumeAll() [2/2]

template<typename T >
template<typename Rep , typename Period >
bool dai::LockingQueue< T >::waitAndConsumeAll ( std::function< void(T &)>  callback,
std::chrono::duration< Rep, Period >  timeout 
)
inline

Definition at line 52 of file LockingQueue.hpp.

◆ waitAndPop()

template<typename T >
bool dai::LockingQueue< T >::waitAndPop ( T &  value)
inline

Definition at line 192 of file LockingQueue.hpp.

◆ waitEmpty()

template<typename T >
void dai::LockingQueue< T >::waitEmpty ( )
inline

Definition at line 224 of file LockingQueue.hpp.

Member Data Documentation

◆ blocking

template<typename T >
bool dai::LockingQueue< T >::blocking = true
private

Definition at line 231 of file LockingQueue.hpp.

◆ destructed

template<typename T >
bool dai::LockingQueue< T >::destructed {false}
private

Definition at line 234 of file LockingQueue.hpp.

◆ guard

template<typename T >
std::mutex dai::LockingQueue< T >::guard
mutableprivate

Definition at line 233 of file LockingQueue.hpp.

◆ maxSize

template<typename T >
unsigned dai::LockingQueue< T >::maxSize = std::numeric_limits<unsigned>::max()
private

Definition at line 230 of file LockingQueue.hpp.

◆ queue

template<typename T >
std::queue<T> dai::LockingQueue< T >::queue
private

Definition at line 232 of file LockingQueue.hpp.

◆ signalPop

template<typename T >
std::condition_variable dai::LockingQueue< T >::signalPop
private

Definition at line 235 of file LockingQueue.hpp.

◆ signalPush

template<typename T >
std::condition_variable dai::LockingQueue< T >::signalPush
private

Definition at line 236 of file LockingQueue.hpp.


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


depthai
Author(s): Martin Peterlin
autogenerated on Sat Mar 22 2025 02:58:20