\hypertarget{group__Ecore__Pipe__Group}{}\doxysection{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\textquotesingle{}s main loop.  


\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}\label{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}} 
typedef struct \+\_\+\+Ecore\+\_\+\+Pipe \mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}}
\begin{DoxyCompactList}\small\item\em A handle for pipes. \end{DoxyCompactList}\item 
typedef void($\ast$ \mbox{\hyperlink{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}{Ecore\+\_\+\+Pipe\+\_\+\+Cb}}) (void $\ast$data, void $\ast$buffer, unsigned int nbyte)
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$ \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}{Ecore\+\_\+\+Pipe\+\_\+\+Cb}} handler, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Creates two file descriptors (sockets on Windows). \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$ \mbox{\hyperlink{group__Ecore__Pipe__Group_ga09637c246ad7bb903c498f347c929d62}{ecore\+\_\+pipe\+\_\+full\+\_\+add}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}{Ecore\+\_\+\+Pipe\+\_\+\+Cb}} handler, const void $\ast$data, int fd\+\_\+read, int fd\+\_\+write, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} read\+\_\+survive\+\_\+fork, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} write\+\_\+survive\+\_\+fork)
\begin{DoxyCompactList}\small\item\em Creates a pipe with more parameters. \end{DoxyCompactList}\item 
void $\ast$ \mbox{\hyperlink{group__Ecore__Pipe__Group_ga7ed5669e83a3119d2023c64288f9af60}{ecore\+\_\+pipe\+\_\+del}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$p)
\begin{DoxyCompactList}\small\item\em Frees an Ecore\+\_\+\+Pipe object created with \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add()}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Ecore__Pipe__Group_ga5336bc71e829c391926c26750ae0f407}{ecore\+\_\+pipe\+\_\+write}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$p, const void $\ast$buffer, unsigned int nbytes)
\begin{DoxyCompactList}\small\item\em Writes on the file descriptor the data passed as parameter. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Ecore__Pipe__Group_ga60099202e0880dd3de617ca14fa0c58b}{ecore\+\_\+pipe\+\_\+write\+\_\+close}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$p)
\begin{DoxyCompactList}\small\item\em Closes the write end of an Ecore\+\_\+\+Pipe object created with \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add()}}. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Ecore__Pipe__Group_gab9df469d955d67dbcd95fd6f2dabdc79}{ecore\+\_\+pipe\+\_\+read\+\_\+close}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$p)
\begin{DoxyCompactList}\small\item\em Closes the read end of an Ecore\+\_\+\+Pipe object created with \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add()}}. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Ecore__Pipe__Group_ga7d74cabc7a3ee9aa0795ed4e5211ce81}{ecore\+\_\+pipe\+\_\+read\+\_\+fd}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$p)
\begin{DoxyCompactList}\small\item\em Gets the pipe read file descriptor. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Ecore__Pipe__Group_ga41e986373544cfb7e4bd19786d27a157}{ecore\+\_\+pipe\+\_\+write\+\_\+fd}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$p)
\begin{DoxyCompactList}\small\item\em Gets the pipe write file descriptor. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Ecore__Pipe__Group_gacf6095f3a1b07d9aec2bd76909b76239}{ecore\+\_\+pipe\+\_\+thaw}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$p)
\begin{DoxyCompactList}\small\item\em Starts monitoring again the pipe for reading. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Ecore__Pipe__Group_ga4c80814c9589a4e64c057a52f15361c3}{ecore\+\_\+pipe\+\_\+freeze}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$p)
\begin{DoxyCompactList}\small\item\em Stops monitoring if necessary the pipe for reading. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Ecore__Pipe__Group_ga0d65cf04c81863ef39cf63788605b86a}{ecore\+\_\+pipe\+\_\+wait}} (\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$p, int message\+\_\+count, double wait)
\begin{DoxyCompactList}\small\item\em Waits from another thread on the read side of a pipe. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
These functions wrap the pipe / write / read functions to easily integrate its use into ecore\textquotesingle{}s main loop. 

The \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{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 \mbox{\hyperlink{group__Ecore__Pipe__Group_ga5336bc71e829c391926c26750ae0f407}{ecore\+\_\+pipe\+\_\+write()}}. When you are done, just call \mbox{\hyperlink{group__Ecore__Pipe__Group_ga7ed5669e83a3119d2023c64288f9af60}{ecore\+\_\+pipe\+\_\+del()}}.

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


\doxysubsection{Typedef Documentation}
\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}\label{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}} 
\index{Pipe wrapper@{Pipe wrapper}!Ecore\_Pipe\_Cb@{Ecore\_Pipe\_Cb}}
\index{Ecore\_Pipe\_Cb@{Ecore\_Pipe\_Cb}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{Ecore\_Pipe\_Cb}{Ecore\_Pipe\_Cb}}
{\footnotesize\ttfamily Ecore\+\_\+\+Pipe\+\_\+\+Cb Ecore\+\_\+\+Pipe\+\_\+\+Cb}

The callback that data written to the pipe is sent to. 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}\label{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}} 
\index{Pipe wrapper@{Pipe wrapper}!ecore\_pipe\_add@{ecore\_pipe\_add}}
\index{ecore\_pipe\_add@{ecore\_pipe\_add}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_add()}{ecore\_pipe\_add()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}}$\ast$ ecore\+\_\+pipe\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}{Ecore\+\_\+\+Pipe\+\_\+\+Cb}}}]{handler,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Creates two file descriptors (sockets on Windows). 

Adds 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\+LL} otherwise. 
\end{DoxyReturn}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_pipe_gstreamer_example_8c-example}{ecore\+\_\+pipe\+\_\+gstreamer\+\_\+example.\+c}}, and \mbox{\hyperlink{ecore_pipe_simple_example_8c-example}{ecore\+\_\+pipe\+\_\+simple\+\_\+example.\+c}}.\end{Desc}


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

\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga09637c246ad7bb903c498f347c929d62}\label{group__Ecore__Pipe__Group_ga09637c246ad7bb903c498f347c929d62}} 
\index{Pipe wrapper@{Pipe wrapper}!ecore\_pipe\_full\_add@{ecore\_pipe\_full\_add}}
\index{ecore\_pipe\_full\_add@{ecore\_pipe\_full\_add}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_full\_add()}{ecore\_pipe\_full\_add()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}}$\ast$ ecore\+\_\+pipe\+\_\+full\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga96cd889ad0fb3f9b41960e8a12cb565a}{Ecore\+\_\+\+Pipe\+\_\+\+Cb}}}]{handler,  }\item[{const void $\ast$}]{data,  }\item[{int}]{fd\+\_\+read,  }\item[{int}]{fd\+\_\+write,  }\item[{\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}}]{read\+\_\+survive\+\_\+fork,  }\item[{\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}}]{write\+\_\+survive\+\_\+fork }\end{DoxyParamCaption})}



Creates a pipe with more parameters. 


\begin{DoxyParams}{Parameters}
{\em handler} & Same as \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add()}} \\
\hline
{\em data} & Same as \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add()}} \\
\hline
{\em fd\+\_\+read} & An fd to use for reading or {\ttfamily -\/1} otherwise \\
\hline
{\em fd\+\_\+write} & An fd to use for writing or {\ttfamily -\/1} otherwise \\
\hline
{\em read\+\_\+survive\+\_\+fork} & Should read fd survive a fork \\
\hline
{\em write\+\_\+survive\+\_\+fork} & Should write fd survive a fork\\
\hline
\end{DoxyParams}
This is the same as \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add()}} but with some added parameters.

\begin{DoxyReturn}{Returns}
A pointer to the new Ecore\+\_\+\+Pipe object on success, else N\+U\+LL. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add()}} 
\end{DoxySeeAlso}


References E\+C\+O\+R\+E\+\_\+\+F\+D\+\_\+\+R\+E\+AD, ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+add(), eina\+\_\+file\+\_\+close\+\_\+on\+\_\+exec(), E\+I\+N\+A\+\_\+\+M\+A\+I\+N\+\_\+\+L\+O\+O\+P\+\_\+\+C\+H\+E\+C\+K\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL, E\+I\+N\+A\+\_\+\+T\+R\+UE, E\+RR, fcntl(), and pipe.

\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga7ed5669e83a3119d2023c64288f9af60}\label{group__Ecore__Pipe__Group_ga7ed5669e83a3119d2023c64288f9af60}} 
\index{Pipe wrapper@{Pipe wrapper}!ecore\_pipe\_del@{ecore\_pipe\_del}}
\index{ecore\_pipe\_del@{ecore\_pipe\_del}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_del()}{ecore\_pipe\_del()}}
{\footnotesize\ttfamily void$\ast$ ecore\+\_\+pipe\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$}]{p }\end{DoxyParamCaption})}



Frees an Ecore\+\_\+\+Pipe object created with \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{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
\mbox{\hyperlink{ecore_pipe_gstreamer_example_8c-example}{ecore\+\_\+pipe\+\_\+gstreamer\+\_\+example.\+c}}, and \mbox{\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\+AL.



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

\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga5336bc71e829c391926c26750ae0f407}\label{group__Ecore__Pipe__Group_ga5336bc71e829c391926c26750ae0f407}} 
\index{Pipe wrapper@{Pipe wrapper}!ecore\_pipe\_write@{ecore\_pipe\_write}}
\index{ecore\_pipe\_write@{ecore\_pipe\_write}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_write()}{ecore\_pipe\_write()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} ecore\+\_\+pipe\+\_\+write (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$}]{p,  }\item[{const void $\ast$}]{buffer,  }\item[{unsigned int}]{nbytes }\end{DoxyParamCaption})}



Writes 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\+UE} on a successful write, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} on error. 
\end{DoxyReturn}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_pipe_gstreamer_example_8c-example}{ecore\+\_\+pipe\+\_\+gstreamer\+\_\+example.\+c}}, and \mbox{\hyperlink{ecore_pipe_simple_example_8c-example}{ecore\+\_\+pipe\+\_\+simple\+\_\+example.\+c}}.\end{Desc}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.



Referenced by ecore\+\_\+fork\+\_\+reset(), and evas\+\_\+async\+\_\+events\+\_\+put().

\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga60099202e0880dd3de617ca14fa0c58b}\label{group__Ecore__Pipe__Group_ga60099202e0880dd3de617ca14fa0c58b}} 
\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}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_write\_close()}{ecore\_pipe\_write\_close()}}
{\footnotesize\ttfamily void ecore\+\_\+pipe\+\_\+write\+\_\+close (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$}]{p }\end{DoxyParamCaption})}



Closes the write end of an Ecore\+\_\+\+Pipe object created with \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add()}}. 


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\+\_\+\+Pipe object. \\
\hline
\end{DoxyParams}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_pipe_simple_example_8c-example}{ecore\+\_\+pipe\+\_\+simple\+\_\+example.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Ecore__Pipe__Group_gab9df469d955d67dbcd95fd6f2dabdc79}\label{group__Ecore__Pipe__Group_gab9df469d955d67dbcd95fd6f2dabdc79}} 
\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}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_read\_close()}{ecore\_pipe\_read\_close()}}
{\footnotesize\ttfamily void ecore\+\_\+pipe\+\_\+read\+\_\+close (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$}]{p }\end{DoxyParamCaption})}



Closes the read end of an Ecore\+\_\+\+Pipe object created with \mbox{\hyperlink{group__Ecore__Pipe__Group_ga3d584a8f962644f748dfd84d39d3421a}{ecore\+\_\+pipe\+\_\+add()}}. 


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\+\_\+\+Pipe object. \\
\hline
\end{DoxyParams}
\begin{Desc}
\item[Examples]\par
\mbox{\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\+RN.

\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga7d74cabc7a3ee9aa0795ed4e5211ce81}\label{group__Ecore__Pipe__Group_ga7d74cabc7a3ee9aa0795ed4e5211ce81}} 
\index{Pipe wrapper@{Pipe wrapper}!ecore\_pipe\_read\_fd@{ecore\_pipe\_read\_fd}}
\index{ecore\_pipe\_read\_fd@{ecore\_pipe\_read\_fd}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_read\_fd()}{ecore\_pipe\_read\_fd()}}
{\footnotesize\ttfamily int ecore\+\_\+pipe\+\_\+read\+\_\+fd (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$}]{p }\end{DoxyParamCaption})}



Gets the pipe read file descriptor. 


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\+\_\+\+Pipe object query. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The file descriptor, or {\ttfamily -\/1} if none 
\end{DoxyReturn}


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\+AL.

\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga41e986373544cfb7e4bd19786d27a157}\label{group__Ecore__Pipe__Group_ga41e986373544cfb7e4bd19786d27a157}} 
\index{Pipe wrapper@{Pipe wrapper}!ecore\_pipe\_write\_fd@{ecore\_pipe\_write\_fd}}
\index{ecore\_pipe\_write\_fd@{ecore\_pipe\_write\_fd}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_write\_fd()}{ecore\_pipe\_write\_fd()}}
{\footnotesize\ttfamily int ecore\+\_\+pipe\+\_\+write\+\_\+fd (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$}]{p }\end{DoxyParamCaption})}



Gets the pipe write file descriptor. 


\begin{DoxyParams}{Parameters}
{\em p} & The Ecore\+\_\+\+Pipe object query. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The file descriptor, or {\ttfamily -\/1} if none 
\end{DoxyReturn}


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\+AL.

\mbox{\Hypertarget{group__Ecore__Pipe__Group_gacf6095f3a1b07d9aec2bd76909b76239}\label{group__Ecore__Pipe__Group_gacf6095f3a1b07d9aec2bd76909b76239}} 
\index{Pipe wrapper@{Pipe wrapper}!ecore\_pipe\_thaw@{ecore\_pipe\_thaw}}
\index{ecore\_pipe\_thaw@{ecore\_pipe\_thaw}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_thaw()}{ecore\_pipe\_thaw()}}
{\footnotesize\ttfamily void ecore\+\_\+pipe\+\_\+thaw (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$}]{p }\end{DoxyParamCaption})}



Starts monitoring again the pipe for reading. 

See \mbox{\hyperlink{group__Ecore__Pipe__Group_ga4c80814c9589a4e64c057a52f15361c3}{ecore\+\_\+pipe\+\_\+freeze()}} for stopping the monitoring activity. This will not work if \mbox{\hyperlink{group__Ecore__Pipe__Group_gab9df469d955d67dbcd95fd6f2dabdc79}{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\+AD, 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\+RN.

\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga4c80814c9589a4e64c057a52f15361c3}\label{group__Ecore__Pipe__Group_ga4c80814c9589a4e64c057a52f15361c3}} 
\index{Pipe wrapper@{Pipe wrapper}!ecore\_pipe\_freeze@{ecore\_pipe\_freeze}}
\index{ecore\_pipe\_freeze@{ecore\_pipe\_freeze}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_freeze()}{ecore\_pipe\_freeze()}}
{\footnotesize\ttfamily void ecore\+\_\+pipe\+\_\+freeze (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$}]{p }\end{DoxyParamCaption})}



Stops monitoring if necessary the pipe for reading. 

See \mbox{\hyperlink{group__Ecore__Pipe__Group_gacf6095f3a1b07d9aec2bd76909b76239}{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\+RN.

\mbox{\Hypertarget{group__Ecore__Pipe__Group_ga0d65cf04c81863ef39cf63788605b86a}\label{group__Ecore__Pipe__Group_ga0d65cf04c81863ef39cf63788605b86a}} 
\index{Pipe wrapper@{Pipe wrapper}!ecore\_pipe\_wait@{ecore\_pipe\_wait}}
\index{ecore\_pipe\_wait@{ecore\_pipe\_wait}!Pipe wrapper@{Pipe wrapper}}
\doxysubsubsection{\texorpdfstring{ecore\_pipe\_wait()}{ecore\_pipe\_wait()}}
{\footnotesize\ttfamily int ecore\+\_\+pipe\+\_\+wait (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Pipe__Group_ga0092a6b764881362d1a051d7af215b3f}{Ecore\+\_\+\+Pipe}} $\ast$}]{p,  }\item[{int}]{message\+\_\+count,  }\item[{double}]{wait }\end{DoxyParamCaption})}



Waits 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 minimum number of messages to wait for before exiting. \\
\hline
{\em wait} & The amount of time in seconds to wait before exiting. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The number of message caught during the wait call. 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1
\end{DoxySince}
Negative value for {\ttfamily wait} means infite wait. 

Referenced by ecore\+\_\+main\+\_\+loop\+\_\+thread\+\_\+safe\+\_\+call\+\_\+wait(), and evas\+\_\+async\+\_\+events\+\_\+process().

