\doxysection{utils\+::Thread\+Safe\+Queue\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>} Class Template Reference}
\hypertarget{classutils_1_1ThreadSafeQueue}{}\label{classutils_1_1ThreadSafeQueue}\index{utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}}


{\ttfamily \#include $<$Thread\+Safe\+Queue.\+hh$>$}



Collaboration diagram for utils\+::Thread\+Safe\+Queue\texorpdfstring{$<$}{<} T \texorpdfstring{$>$}{>}\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=231pt]{classutils_1_1ThreadSafeQueue__coll__graph}
\end{center}
\end{figure}
\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
void \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a00347d38cfa085d97c67796779da2f33}{push}} (T value)
\item 
T \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a0fc878c7c3ed27b4c65bcf277b99a48b}{wait\+\_\+and\+\_\+pop}} ()
\end{DoxyCompactItemize}
\doxysubsubsection*{Private Attributes}
\begin{DoxyCompactItemize}
\item 
std\+::queue$<$ T $>$ \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a970596f4c9a6d1a806b06d46807e06ee}{\+\_\+queue}}
\item 
std\+::mutex \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a43fef8c13f23363c48bac7a6a49a565b}{\+\_\+mutex}}
\item 
std\+::condition\+\_\+variable \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_aa8f60ba625a00977e004c6641325671e}{\+\_\+cv}}
\end{DoxyCompactItemize}


\doxysubsection{Member Function Documentation}
\Hypertarget{classutils_1_1ThreadSafeQueue_a00347d38cfa085d97c67796779da2f33}\index{utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}!push@{push}}
\index{push@{push}!utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{push()}{push()}}
{\footnotesize\ttfamily \label{classutils_1_1ThreadSafeQueue_a00347d38cfa085d97c67796779da2f33} 
template$<$typename T$>$ \\
void \mbox{\hyperlink{classutils_1_1ThreadSafeQueue}{utils\+::\+Thread\+Safe\+Queue}}$<$ T $>$\+::push (\begin{DoxyParamCaption}\item[{T}]{value}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_aa8f60ba625a00977e004c6641325671e}{\+\_\+cv}}, \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a43fef8c13f23363c48bac7a6a49a565b}{\+\_\+mutex}}, and \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a970596f4c9a6d1a806b06d46807e06ee}{\+\_\+queue}}.

\Hypertarget{classutils_1_1ThreadSafeQueue_a0fc878c7c3ed27b4c65bcf277b99a48b}\index{utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}!wait\_and\_pop@{wait\_and\_pop}}
\index{wait\_and\_pop@{wait\_and\_pop}!utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{wait\_and\_pop()}{wait\_and\_pop()}}
{\footnotesize\ttfamily \label{classutils_1_1ThreadSafeQueue_a0fc878c7c3ed27b4c65bcf277b99a48b} 
template$<$typename T$>$ \\
T \mbox{\hyperlink{classutils_1_1ThreadSafeQueue}{utils\+::\+Thread\+Safe\+Queue}}$<$ T $>$\+::wait\+\_\+and\+\_\+pop (\begin{DoxyParamCaption}{}{}\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}}



References \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_aa8f60ba625a00977e004c6641325671e}{\+\_\+cv}}, \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a43fef8c13f23363c48bac7a6a49a565b}{\+\_\+mutex}}, and \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a970596f4c9a6d1a806b06d46807e06ee}{\+\_\+queue}}.



\doxysubsection{Member Data Documentation}
\Hypertarget{classutils_1_1ThreadSafeQueue_aa8f60ba625a00977e004c6641325671e}\index{utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}!\_cv@{\_cv}}
\index{\_cv@{\_cv}!utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{\_cv}{\_cv}}
{\footnotesize\ttfamily \label{classutils_1_1ThreadSafeQueue_aa8f60ba625a00977e004c6641325671e} 
template$<$typename T$>$ \\
std\+::condition\+\_\+variable \mbox{\hyperlink{classutils_1_1ThreadSafeQueue}{utils\+::\+Thread\+Safe\+Queue}}$<$ T $>$\+::\+\_\+cv\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a00347d38cfa085d97c67796779da2f33}{push()}}, and \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a0fc878c7c3ed27b4c65bcf277b99a48b}{wait\+\_\+and\+\_\+pop()}}.

\Hypertarget{classutils_1_1ThreadSafeQueue_a43fef8c13f23363c48bac7a6a49a565b}\index{utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}!\_mutex@{\_mutex}}
\index{\_mutex@{\_mutex}!utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{\_mutex}{\_mutex}}
{\footnotesize\ttfamily \label{classutils_1_1ThreadSafeQueue_a43fef8c13f23363c48bac7a6a49a565b} 
template$<$typename T$>$ \\
std\+::mutex \mbox{\hyperlink{classutils_1_1ThreadSafeQueue}{utils\+::\+Thread\+Safe\+Queue}}$<$ T $>$\+::\+\_\+mutex\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a00347d38cfa085d97c67796779da2f33}{push()}}, and \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a0fc878c7c3ed27b4c65bcf277b99a48b}{wait\+\_\+and\+\_\+pop()}}.

\Hypertarget{classutils_1_1ThreadSafeQueue_a970596f4c9a6d1a806b06d46807e06ee}\index{utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}!\_queue@{\_queue}}
\index{\_queue@{\_queue}!utils::ThreadSafeQueue$<$ T $>$@{utils::ThreadSafeQueue$<$ T $>$}}
\doxysubsubsection{\texorpdfstring{\_queue}{\_queue}}
{\footnotesize\ttfamily \label{classutils_1_1ThreadSafeQueue_a970596f4c9a6d1a806b06d46807e06ee} 
template$<$typename T$>$ \\
std\+::queue$<$T$>$ \mbox{\hyperlink{classutils_1_1ThreadSafeQueue}{utils\+::\+Thread\+Safe\+Queue}}$<$ T $>$\+::\+\_\+queue\hspace{0.3cm}{\ttfamily [private]}}



Referenced by \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a00347d38cfa085d97c67796779da2f33}{push()}}, and \mbox{\hyperlink{classutils_1_1ThreadSafeQueue_a0fc878c7c3ed27b4c65bcf277b99a48b}{wait\+\_\+and\+\_\+pop()}}.



The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
include/utils/\mbox{\hyperlink{ThreadSafeQueue_8hh}{Thread\+Safe\+Queue.\+hh}}\end{DoxyCompactItemize}
