\hypertarget{group__Ecore__Pipe__Group}{\section{Pipe wrapper}
\label{group__Ecore__Pipe__Group}\index{Pipe wrapper@{Pipe wrapper}}
}


These functions wrap the pipe / write / read functions to easily integrate its use into ecore's main loop.  


\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{typedef struct \-\_\-\-Ecore\-\_\-\-Pipe \hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe}}\label{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}

\begin{DoxyCompactList}\small\item\em A handle for pipes. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}{typedef void($\ast$ \hyperlink{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}{Ecore\-\_\-\-Pipe\-\_\-\-Cb} )(void $\ast$data, void $\ast$buffer, unsigned int nbyte)}\label{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}

\begin{DoxyCompactList}\small\item\em The callback that data written to the pipe is sent to. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$ \hyperlink{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}{ecore\-\_\-pipe\-\_\-add} (\hyperlink{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}{Ecore\-\_\-\-Pipe\-\_\-\-Cb} handler, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Create two file descriptors (sockets on Windows). \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__Pipe__Group_ga3bb8157488c826bef29ee97730e7c0bf}{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$ {\bfseries ecore\-\_\-pipe\-\_\-full\-\_\-add} (\hyperlink{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}{Ecore\-\_\-\-Pipe\-\_\-\-Cb} handler, const void $\ast$data, int fd\-\_\-read, int fd\-\_\-write, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} read\-\_\-survive\-\_\-fork, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} write\-\_\-survive\-\_\-fork)}\label{group__Ecore__Pipe__Group_ga3bb8157488c826bef29ee97730e7c0bf}

\item 
void $\ast$ \hyperlink{group__Ecore__Pipe__Group_ga6bf402da747ef76330976b55ca59210b}{ecore\-\_\-pipe\-\_\-del} (\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$p)
\begin{DoxyCompactList}\small\item\em Free an Ecore\-\_\-\-Pipe object created with \hyperlink{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}{ecore\-\_\-pipe\-\_\-add()}. \end{DoxyCompactList}\item 
\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\-\_\-\-Bool} \hyperlink{group__Ecore__Pipe__Group_ga6e298e0198ce5bd04ab4cf12a14a1bb4}{ecore\-\_\-pipe\-\_\-write} (\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$p, const void $\ast$buffer, unsigned int nbytes)
\begin{DoxyCompactList}\small\item\em Write on the file descriptor the data passed as parameter. \end{DoxyCompactList}\item 
void \hyperlink{group__Ecore__Pipe__Group_gafbb2f542925ce30b5dd0a16838d79ca6}{ecore\-\_\-pipe\-\_\-write\-\_\-close} (\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$p)
\begin{DoxyCompactList}\small\item\em Close the write end of an Ecore\-\_\-\-Pipe object created with \hyperlink{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}{ecore\-\_\-pipe\-\_\-add()}. \end{DoxyCompactList}\item 
void \hyperlink{group__Ecore__Pipe__Group_ga2107286b5a0f6b45a6b6abb696e48848}{ecore\-\_\-pipe\-\_\-read\-\_\-close} (\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$p)
\begin{DoxyCompactList}\small\item\em Close the read end of an Ecore\-\_\-\-Pipe object created with \hyperlink{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}{ecore\-\_\-pipe\-\_\-add()}. \end{DoxyCompactList}\item 
\hypertarget{group__Ecore__Pipe__Group_ga2ad9ba46c93ef5aad97d9a72cc1f1974}{int {\bfseries ecore\-\_\-pipe\-\_\-read\-\_\-fd} (\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$p)}\label{group__Ecore__Pipe__Group_ga2ad9ba46c93ef5aad97d9a72cc1f1974}

\item 
\hypertarget{group__Ecore__Pipe__Group_ga035991de0a10bdf64e93e5af4d752630}{int {\bfseries ecore\-\_\-pipe\-\_\-write\-\_\-fd} (\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$p)}\label{group__Ecore__Pipe__Group_ga035991de0a10bdf64e93e5af4d752630}

\item 
void \hyperlink{group__Ecore__Pipe__Group_ga9b8c45773f28a3de477e6adacfd71117}{ecore\-\_\-pipe\-\_\-thaw} (\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$p)
\begin{DoxyCompactList}\small\item\em Start monitoring again the pipe for reading. \end{DoxyCompactList}\item 
void \hyperlink{group__Ecore__Pipe__Group_gad839304afac9adc52cba877ba159f9b9}{ecore\-\_\-pipe\-\_\-freeze} (\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$p)
\begin{DoxyCompactList}\small\item\em Stop monitoring if necessary the pipe for reading. \end{DoxyCompactList}\item 
int \hyperlink{group__Ecore__Pipe__Group_ga0b75b33c9c458aea2b03af3d056a8231}{ecore\-\_\-pipe\-\_\-wait} (\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\-\_\-\-Pipe} $\ast$p, int message\-\_\-count, double wait)
\begin{DoxyCompactList}\small\item\em Wait from another thread on the read side of a pipe. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
These functions wrap the pipe / write / read functions to easily integrate its use into ecore's main loop. The \hyperlink{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}{ecore\-\_\-pipe\-\_\-add()} function creates file descriptors (sockets on Windows) and attach a handle to the ecore main loop. That handle is called when data is read in the pipe. To write data in the pipe, just call \hyperlink{group__Ecore__Pipe__Group_ga6e298e0198ce5bd04ab4cf12a14a1bb4}{ecore\-\_\-pipe\-\_\-write()}. When you are done, just call \hyperlink{group__Ecore__Pipe__Group_ga6bf402da747ef76330976b55ca59210b}{ecore\-\_\-pipe\-\_\-del()}.

For examples see here\-: \begin{DoxyItemize}
\item \hyperlink{tutorial_ecore_pipe_gstreamer_example}{tutorial\-\_\-ecore\-\_\-pipe\-\_\-gstreamer\-\_\-example} \item \hyperlink{tutorial_ecore_pipe_simple_example}{tutorial\-\_\-ecore\-\_\-pipe\-\_\-simple\-\_\-example} \end{DoxyItemize}


\subsection{Function Documentation}
\hypertarget{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}{\index{Pipe wrapper@{Pipe wrapper}!ecore\-\_\-pipe\-\_\-add@{ecore\-\_\-pipe\-\_\-add}}
\index{ecore\-\_\-pipe\-\_\-add@{ecore\-\_\-pipe\-\_\-add}!Pipe wrapper@{Pipe wrapper}}
\subsubsection[{ecore\-\_\-pipe\-\_\-add}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} {\bf Ecore\-\_\-\-Pipe} $\ast$ ecore\-\_\-pipe\-\_\-add (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Pipe\-\_\-\-Cb}}]{handler, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}


Create two file descriptors (sockets on Windows). 

Add a callback that will be called when the file descriptor that is listened receives data. An event is also put in the event queue when data is received.


\begin{DoxyParams}{Parameters}
{\em handler} & The handler called when data is received. \\
\hline
{\em data} & Data to pass to {\ttfamily handler} when it is called. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A newly created Ecore\-\_\-\-Pipe object if successful. {\ttfamily N\-U\-L\-L} otherwise. 
\end{DoxyReturn}
\begin{Desc}
\item[Examples\-: ]\par
\hyperlink{ecore_pipe_gstreamer_example_8c-example}{ecore\-\_\-pipe\-\_\-gstreamer\-\_\-example.\-c}, and \hyperlink{ecore_pipe_simple_example_8c-example}{ecore\-\_\-pipe\-\_\-simple\-\_\-example.\-c}.\end{Desc}


Referenced by ecore\-\_\-fork\-\_\-reset().

\hypertarget{group__Ecore__Pipe__Group_ga6bf402da747ef76330976b55ca59210b}{\index{Pipe wrapper@{Pipe wrapper}!ecore\-\_\-pipe\-\_\-del@{ecore\-\_\-pipe\-\_\-del}}
\index{ecore\-\_\-pipe\-\_\-del@{ecore\-\_\-pipe\-\_\-del}!Pipe wrapper@{Pipe wrapper}}
\subsubsection[{ecore\-\_\-pipe\-\_\-del}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void $\ast$ ecore\-\_\-pipe\-\_\-del (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Pipe} $\ast$}]{p}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Pipe__Group_ga6bf402da747ef76330976b55ca59210b}


Free an Ecore\-\_\-\-Pipe object created with \hyperlink{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}{ecore\-\_\-pipe\-\_\-add()}. 


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\-\_\-\-Pipe object to be freed. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The pointer to the private data 
\end{DoxyReturn}
\begin{Desc}
\item[Examples\-: ]\par
\hyperlink{ecore_pipe_gstreamer_example_8c-example}{ecore\-\_\-pipe\-\_\-gstreamer\-\_\-example.\-c}, and \hyperlink{ecore_pipe_simple_example_8c-example}{ecore\-\_\-pipe\-\_\-simple\-\_\-example.\-c}.\end{Desc}


References E\-I\-N\-A\-\_\-\-M\-A\-I\-N\-\_\-\-L\-O\-O\-P\-\_\-\-C\-H\-E\-C\-K\-\_\-\-R\-E\-T\-U\-R\-N\-\_\-\-V\-A\-L.



Referenced by ecore\-\_\-fork\-\_\-reset().

\hypertarget{group__Ecore__Pipe__Group_ga6e298e0198ce5bd04ab4cf12a14a1bb4}{\index{Pipe wrapper@{Pipe wrapper}!ecore\-\_\-pipe\-\_\-write@{ecore\-\_\-pipe\-\_\-write}}
\index{ecore\-\_\-pipe\-\_\-write@{ecore\-\_\-pipe\-\_\-write}!Pipe wrapper@{Pipe wrapper}}
\subsubsection[{ecore\-\_\-pipe\-\_\-write}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} {\bf Eina\-\_\-\-Bool} ecore\-\_\-pipe\-\_\-write (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Pipe} $\ast$}]{p, }
\item[{const void $\ast$}]{buffer, }
\item[{unsigned int}]{nbytes}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Pipe__Group_ga6e298e0198ce5bd04ab4cf12a14a1bb4}


Write on the file descriptor the data passed as parameter. 


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\-\_\-\-Pipe object. \\
\hline
{\em buffer} & The data to write into the pipe. \\
\hline
{\em nbytes} & The size of the {\ttfamily buffer} in bytes \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\-I\-N\-A\-\_\-\-T\-R\-U\-E} on a successful write, {\ttfamily E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E} on error. 
\end{DoxyReturn}
\begin{Desc}
\item[Examples\-: ]\par
\hyperlink{ecore_pipe_gstreamer_example_8c-example}{ecore\-\_\-pipe\-\_\-gstreamer\-\_\-example.\-c}, and \hyperlink{ecore_pipe_simple_example_8c-example}{ecore\-\_\-pipe\-\_\-simple\-\_\-example.\-c}.\end{Desc}


References E\-I\-N\-A\-\_\-\-F\-A\-L\-S\-E, and E\-I\-N\-A\-\_\-\-T\-R\-U\-E.



Referenced by ecore\-\_\-fork\-\_\-reset().

\hypertarget{group__Ecore__Pipe__Group_gafbb2f542925ce30b5dd0a16838d79ca6}{\index{Pipe wrapper@{Pipe wrapper}!ecore\-\_\-pipe\-\_\-write\-\_\-close@{ecore\-\_\-pipe\-\_\-write\-\_\-close}}
\index{ecore\-\_\-pipe\-\_\-write\-\_\-close@{ecore\-\_\-pipe\-\_\-write\-\_\-close}!Pipe wrapper@{Pipe wrapper}}
\subsubsection[{ecore\-\_\-pipe\-\_\-write\-\_\-close}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void ecore\-\_\-pipe\-\_\-write\-\_\-close (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Pipe} $\ast$}]{p}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Pipe__Group_gafbb2f542925ce30b5dd0a16838d79ca6}


Close the write end of an Ecore\-\_\-\-Pipe object created with \hyperlink{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}{ecore\-\_\-pipe\-\_\-add()}. 


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\-\_\-\-Pipe object. \\
\hline
\end{DoxyParams}
\begin{Desc}
\item[Examples\-: ]\par
\hyperlink{ecore_pipe_simple_example_8c-example}{ecore\-\_\-pipe\-\_\-simple\-\_\-example.\-c}.\end{Desc}
\hypertarget{group__Ecore__Pipe__Group_ga2107286b5a0f6b45a6b6abb696e48848}{\index{Pipe wrapper@{Pipe wrapper}!ecore\-\_\-pipe\-\_\-read\-\_\-close@{ecore\-\_\-pipe\-\_\-read\-\_\-close}}
\index{ecore\-\_\-pipe\-\_\-read\-\_\-close@{ecore\-\_\-pipe\-\_\-read\-\_\-close}!Pipe wrapper@{Pipe wrapper}}
\subsubsection[{ecore\-\_\-pipe\-\_\-read\-\_\-close}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void ecore\-\_\-pipe\-\_\-read\-\_\-close (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Pipe} $\ast$}]{p}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Pipe__Group_ga2107286b5a0f6b45a6b6abb696e48848}


Close the read end of an Ecore\-\_\-\-Pipe object created with \hyperlink{group__Ecore__Pipe__Group_gad75a1e7a4ce7b2d6b2090849adadd922}{ecore\-\_\-pipe\-\_\-add()}. 


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\-\_\-\-Pipe object. \\
\hline
\end{DoxyParams}
\begin{Desc}
\item[Examples\-: ]\par
\hyperlink{ecore_pipe_simple_example_8c-example}{ecore\-\_\-pipe\-\_\-simple\-\_\-example.\-c}.\end{Desc}


References E\-I\-N\-A\-\_\-\-M\-A\-I\-N\-\_\-\-L\-O\-O\-P\-\_\-\-C\-H\-E\-C\-K\-\_\-\-R\-E\-T\-U\-R\-N.

\hypertarget{group__Ecore__Pipe__Group_ga9b8c45773f28a3de477e6adacfd71117}{\index{Pipe wrapper@{Pipe wrapper}!ecore\-\_\-pipe\-\_\-thaw@{ecore\-\_\-pipe\-\_\-thaw}}
\index{ecore\-\_\-pipe\-\_\-thaw@{ecore\-\_\-pipe\-\_\-thaw}!Pipe wrapper@{Pipe wrapper}}
\subsubsection[{ecore\-\_\-pipe\-\_\-thaw}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void ecore\-\_\-pipe\-\_\-thaw (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Pipe} $\ast$}]{p}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Pipe__Group_ga9b8c45773f28a3de477e6adacfd71117}


Start monitoring again the pipe for reading. 

See \hyperlink{group__Ecore__Pipe__Group_gad839304afac9adc52cba877ba159f9b9}{ecore\-\_\-pipe\-\_\-freeze()} for stopping the monitoring activity. This will not work if \hyperlink{group__Ecore__Pipe__Group_ga2107286b5a0f6b45a6b6abb696e48848}{ecore\-\_\-pipe\-\_\-read\-\_\-close()} was previously called on the same pipe.


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\-\_\-\-Pipe object. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\-1 
\end{DoxySince}


References E\-C\-O\-R\-E\-\_\-\-F\-D\-\_\-\-R\-E\-A\-D, ecore\-\_\-main\-\_\-fd\-\_\-handler\-\_\-add(), and E\-I\-N\-A\-\_\-\-M\-A\-I\-N\-\_\-\-L\-O\-O\-P\-\_\-\-C\-H\-E\-C\-K\-\_\-\-R\-E\-T\-U\-R\-N.

\hypertarget{group__Ecore__Pipe__Group_gad839304afac9adc52cba877ba159f9b9}{\index{Pipe wrapper@{Pipe wrapper}!ecore\-\_\-pipe\-\_\-freeze@{ecore\-\_\-pipe\-\_\-freeze}}
\index{ecore\-\_\-pipe\-\_\-freeze@{ecore\-\_\-pipe\-\_\-freeze}!Pipe wrapper@{Pipe wrapper}}
\subsubsection[{ecore\-\_\-pipe\-\_\-freeze}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} void ecore\-\_\-pipe\-\_\-freeze (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Pipe} $\ast$}]{p}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Pipe__Group_gad839304afac9adc52cba877ba159f9b9}


Stop monitoring if necessary the pipe for reading. 

See \hyperlink{group__Ecore__Pipe__Group_ga9b8c45773f28a3de477e6adacfd71117}{ecore\-\_\-pipe\-\_\-thaw()} for monitoring it again.


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\-\_\-\-Pipe object. \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\-1 
\end{DoxySince}


References E\-I\-N\-A\-\_\-\-M\-A\-I\-N\-\_\-\-L\-O\-O\-P\-\_\-\-C\-H\-E\-C\-K\-\_\-\-R\-E\-T\-U\-R\-N.

\hypertarget{group__Ecore__Pipe__Group_ga0b75b33c9c458aea2b03af3d056a8231}{\index{Pipe wrapper@{Pipe wrapper}!ecore\-\_\-pipe\-\_\-wait@{ecore\-\_\-pipe\-\_\-wait}}
\index{ecore\-\_\-pipe\-\_\-wait@{ecore\-\_\-pipe\-\_\-wait}!Pipe wrapper@{Pipe wrapper}}
\subsubsection[{ecore\-\_\-pipe\-\_\-wait}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\-A\-P\-I} int ecore\-\_\-pipe\-\_\-wait (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\-\_\-\-Pipe} $\ast$}]{p, }
\item[{int}]{message\-\_\-count, }
\item[{double}]{wait}
\end{DoxyParamCaption}
)}}\label{group__Ecore__Pipe__Group_ga0b75b33c9c458aea2b03af3d056a8231}


Wait from another thread on the read side of a pipe. 


\begin{DoxyParams}{Parameters}
{\em p} & The pipe to watch on. \\
\hline
{\em message\-\_\-count} & The minimal number of message to wait before exiting. \\
\hline
{\em wait} & The amount of time in second to wait before exiting. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the number of message catched during that wait call. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\-1
\end{DoxySince}
Negative value for {\ttfamily wait} means infite wait. 