Template for all queues used to send data from one thread/loop to the next.
Definition at line 27 of file ThreadsafeQueue.h.
Public Member Functions | |
ThreadsafeQueue (std::string name="default", size_t maxSize=100000) | |
~ThreadsafeQueue () | |
bool | IsFinished () const |
size_t | ItemsPopped () const |
size_t | ItemsPushed () const |
std::string | Name () |
long | Pop (T &output, int millisecond_wait=1000) |
int | Push (T obj) |
void | SetFinished (bool finished=true) |
size_t | Size () const |
Private Attributes | |
std::condition_variable | can_pop |
std::condition_variable | can_push |
std::string | fName |
std::atomic_bool | is_finished |
size_t | items_in_queue |
size_t | items_popped |
size_t | items_pushed |
size_t | max_queue_size |
std::mutex | mutex |
std::atomic_int | num_writers {0} |
std::queue< T > | queue |
#include <ThreadsafeQueue.h>
ThreadsafeQueue< T >::ThreadsafeQueue | ( | std::string | name = "default" , |
size_t | maxSize = 100000 |
||
) |
Definition at line 67 of file ThreadsafeQueue.h.
|
default |
bool ThreadsafeQueue< T >::IsFinished | ( | ) | const |
Definition at line 137 of file ThreadsafeQueue.h.
size_t ThreadsafeQueue< T >::ItemsPopped | ( | ) | const |
Definition at line 130 of file ThreadsafeQueue.h.
size_t ThreadsafeQueue< T >::ItemsPushed | ( | ) | const |
Definition at line 123 of file ThreadsafeQueue.h.
|
inline |
Definition at line 39 of file ThreadsafeQueue.h.
References ThreadsafeQueue< T >::fName.
long ThreadsafeQueue< T >::Pop | ( | T & | output, |
int | millisecond_wait = 1000 |
||
) |
Definition at line 93 of file ThreadsafeQueue.h.
int ThreadsafeQueue< T >::Push | ( | T | obj | ) |
Definition at line 77 of file ThreadsafeQueue.h.
void ThreadsafeQueue< T >::SetFinished | ( | bool | finished = true | ) |
Definition at line 143 of file ThreadsafeQueue.h.
size_t ThreadsafeQueue< T >::Size | ( | ) | const |
Definition at line 116 of file ThreadsafeQueue.h.
|
private |
Definition at line 51 of file ThreadsafeQueue.h.
|
private |
Definition at line 50 of file ThreadsafeQueue.h.
|
private |
Definition at line 47 of file ThreadsafeQueue.h.
Referenced by ThreadsafeQueue< T >::Name().
|
private |
Definition at line 61 of file ThreadsafeQueue.h.
|
private |
Definition at line 57 of file ThreadsafeQueue.h.
|
private |
Definition at line 59 of file ThreadsafeQueue.h.
Referenced by pygui.status_widget.ThreadVars::Update().
|
private |
Definition at line 58 of file ThreadsafeQueue.h.
Referenced by pygui.status_widget.ThreadVars::Update().
|
private |
Definition at line 55 of file ThreadsafeQueue.h.
|
mutableprivate |
Definition at line 48 of file ThreadsafeQueue.h.
|
private |
Definition at line 53 of file ThreadsafeQueue.h.
|
private |
Definition at line 49 of file ThreadsafeQueue.h.