Android-cuttlefish cvd tool
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
cuttlefish::ThreadSafeQueue< T > Class Template Reference

#include <thread_safe_queue.h>

Public Types

using QueueImpl = std::deque< T >
 
using QueueFullHandler = std::function< void(QueueImpl *)>
 

Public Member Functions

 ThreadSafeQueue ()=default
 
 ThreadSafeQueue (std::size_t max_elements, QueueFullHandler max_elements_handler)
 
Pop ()
 
QueueImpl PopAll ()
 
template<typename U >
bool Push (U &&u)
 
bool IsEmpty ()
 
bool IsFull ()
 

Private Member Functions

bool DropItemsIfAtCapacity ()
 

Private Attributes

std::mutex m_
 
std::size_t max_elements_ {}
 
QueueFullHandler max_elements_handler_ {}
 
std::condition_variable new_item_
 
QueueImpl items_
 

Member Typedef Documentation

◆ QueueFullHandler

template<typename T >
using cuttlefish::ThreadSafeQueue< T >::QueueFullHandler = std::function<void(QueueImpl*)>

◆ QueueImpl

template<typename T >
using cuttlefish::ThreadSafeQueue< T >::QueueImpl = std::deque<T>

Constructor & Destructor Documentation

◆ ThreadSafeQueue() [1/2]

template<typename T >
cuttlefish::ThreadSafeQueue< T >::ThreadSafeQueue ( )
default

◆ ThreadSafeQueue() [2/2]

template<typename T >
cuttlefish::ThreadSafeQueue< T >::ThreadSafeQueue ( std::size_t  max_elements,
QueueFullHandler  max_elements_handler 
)
inlineexplicit

Member Function Documentation

◆ DropItemsIfAtCapacity()

template<typename T >
bool cuttlefish::ThreadSafeQueue< T >::DropItemsIfAtCapacity ( )
inlineprivate

◆ IsEmpty()

template<typename T >
bool cuttlefish::ThreadSafeQueue< T >::IsEmpty ( )
inline

◆ IsFull()

template<typename T >
bool cuttlefish::ThreadSafeQueue< T >::IsFull ( )
inline

◆ Pop()

template<typename T >
T cuttlefish::ThreadSafeQueue< T >::Pop ( )
inline

◆ PopAll()

template<typename T >
QueueImpl cuttlefish::ThreadSafeQueue< T >::PopAll ( )
inline

◆ Push()

template<typename T >
template<typename U >
bool cuttlefish::ThreadSafeQueue< T >::Push ( U &&  u)
inline

Member Data Documentation

◆ items_

template<typename T >
QueueImpl cuttlefish::ThreadSafeQueue< T >::items_
private

◆ m_

template<typename T >
std::mutex cuttlefish::ThreadSafeQueue< T >::m_
private

◆ max_elements_

template<typename T >
std::size_t cuttlefish::ThreadSafeQueue< T >::max_elements_ {}
private

◆ max_elements_handler_

template<typename T >
QueueFullHandler cuttlefish::ThreadSafeQueue< T >::max_elements_handler_ {}
private

◆ new_item_

template<typename T >
std::condition_variable cuttlefish::ThreadSafeQueue< T >::new_item_
private

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