Babel
Epitech's C++ VoIP project
Public Member Functions | Protected Attributes | List of all members
Babel::TSQueue< T > Class Template Reference

Thread Safe queue. More...

#include <TSQueue.hpp>

Collaboration diagram for Babel::TSQueue< T >:

Public Member Functions

 TSQueue ()=default
 
 TSQueue (const TSQueue< T > &)=delete
 
 ~TSQueue ()
 
const T & front ()
 Returns a constant reference to the first element of the queue. More...
 
const T & back ()
 Returns a constant reference to the last element of the queue. More...
 
T popFront ()
 Removes and returns the first element of the queue. More...
 
T popBack ()
 Removes and returns the last element of the queue. More...
 
void pushFront (const T &t)
 Adds an element to the beginning of the queue. More...
 
void pushBack (const T &t)
 Adds an element to the beginning of the queue. More...
 
bool empty ()
 Returns true if the queue is empty, false otherwise. More...
 
size_t count ()
 Returns the number of elements in the queue. More...
 
void clear ()
 Removes every elements in the queue. More...
 
template<typename TimeType >
void waitFor (std::chrono::duration< TimeType > time)
 Block a thread until the queue is non empty or the timeout is reached. More...
 

Protected Attributes

std::mutex _mutex
 
std::deque< T > _queue
 
std::condition_variable _blocker
 
std::mutex _waitMutex
 

Detailed Description

template<typename T>
class Babel::TSQueue< T >

Thread Safe queue.

Note
Should be the same functionality as std::queue

Constructor & Destructor Documentation

◆ TSQueue() [1/2]

template<typename T >
Babel::TSQueue< T >::TSQueue ( )
default

◆ TSQueue() [2/2]

template<typename T >
Babel::TSQueue< T >::TSQueue ( const TSQueue< T > &  )
delete

◆ ~TSQueue()

template<typename T >
Babel::TSQueue< T >::~TSQueue ( )
inline

Member Function Documentation

◆ back()

template<typename T >
const T& Babel::TSQueue< T >::back ( )
inline

Returns a constant reference to the last element of the queue.

◆ clear()

template<typename T >
void Babel::TSQueue< T >::clear ( )
inline

Removes every elements in the queue.

◆ count()

template<typename T >
size_t Babel::TSQueue< T >::count ( )
inline

Returns the number of elements in the queue.

◆ empty()

template<typename T >
bool Babel::TSQueue< T >::empty ( )
inline

Returns true if the queue is empty, false otherwise.

◆ front()

template<typename T >
const T& Babel::TSQueue< T >::front ( )
inline

Returns a constant reference to the first element of the queue.

◆ popBack()

template<typename T >
T Babel::TSQueue< T >::popBack ( )
inline

Removes and returns the last element of the queue.

◆ popFront()

template<typename T >
T Babel::TSQueue< T >::popFront ( )
inline

Removes and returns the first element of the queue.

◆ pushBack()

template<typename T >
void Babel::TSQueue< T >::pushBack ( const T &  t)
inline

Adds an element to the beginning of the queue.

◆ pushFront()

template<typename T >
void Babel::TSQueue< T >::pushFront ( const T &  t)
inline

Adds an element to the beginning of the queue.

◆ waitFor()

template<typename T >
template<typename TimeType >
void Babel::TSQueue< T >::waitFor ( std::chrono::duration< TimeType >  time)
inline

Block a thread until the queue is non empty or the timeout is reached.

Parameters
timeThe number time before release

Member Data Documentation

◆ _blocker

template<typename T >
std::condition_variable Babel::TSQueue< T >::_blocker
protected

◆ _mutex

template<typename T >
std::mutex Babel::TSQueue< T >::_mutex
protected

◆ _queue

template<typename T >
std::deque<T> Babel::TSQueue< T >::_queue
protected

◆ _waitMutex

template<typename T >
std::mutex Babel::TSQueue< T >::_waitMutex
protected

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