![]() |
GRSISort "v4.0.0.5"
An extension of the ROOT analysis Framework
|
![]() |
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 (const ThreadsafeQueue &)=default | |
| ThreadsafeQueue (std::string name="default", size_t maxSize=100000) | |
| ThreadsafeQueue (ThreadsafeQueue &&) noexcept=default | |
| ~ThreadsafeQueue ()=default | |
| bool | IsFinished () const |
| size_t | ItemsPopped () const |
| size_t | ItemsPushed () const |
| std::string | Name () |
| ThreadsafeQueue & | operator= (const ThreadsafeQueue &)=default |
| ThreadsafeQueue & | operator= (ThreadsafeQueue &&) noexcept=default |
| size_t | 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 {0} |
| size_t | items_popped {0} |
| size_t | items_pushed {0} |
| size_t | max_queue_size {100000} |
| std::mutex | mutex |
| std::atomic_int | num_writers {0} |
| std::queue< T > | queue |
Collaboration diagram for ThreadsafeQueue< T >:
|
explicit |
Definition at line 71 of file ThreadsafeQueue.h.
|
default |
|
defaultnoexcept |
|
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 43 of file ThreadsafeQueue.h.
References ThreadsafeQueue< T >::fName.
|
default |
|
defaultnoexcept |
| size_t 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 55 of file ThreadsafeQueue.h.
|
private |
Definition at line 54 of file ThreadsafeQueue.h.
|
private |
Definition at line 51 of file ThreadsafeQueue.h.
Referenced by ThreadsafeQueue< T >::Name().
|
private |
Definition at line 65 of file ThreadsafeQueue.h.
|
private |
Definition at line 61 of file ThreadsafeQueue.h.
|
private |
Definition at line 63 of file ThreadsafeQueue.h.
Referenced by pygui.status_widget.ThreadVars::Update().
|
private |
Definition at line 62 of file ThreadsafeQueue.h.
Referenced by pygui.status_widget.ThreadVars::Update().
|
private |
Definition at line 59 of file ThreadsafeQueue.h.
|
mutableprivate |
Definition at line 52 of file ThreadsafeQueue.h.
|
private |
Definition at line 57 of file ThreadsafeQueue.h.
|
private |
Definition at line 53 of file ThreadsafeQueue.h.