\hypertarget{group__Ecore__FD__Handler__Group}{}\doxysection{File Descriptor Handling Functions}
\label{group__Ecore__FD__Handler__Group}\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}}


Definition for functions that deal with file descriptor handlers.  


\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}\label{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}} 
typedef struct \+\_\+\+Ecore\+\_\+\+Fd\+\_\+\+Handler {\bfseries Ecore\+\_\+\+Fd\+\_\+\+Handler}
\begin{DoxyCompactList}\small\item\em A handle for Fd handlers. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga76a17080e07857131d965c0d33b3b08a}\label{group__Ecore__FD__Handler__Group_ga76a17080e07857131d965c0d33b3b08a}} 
typedef enum \mbox{\hyperlink{group__Ecore__FD__Handler__Group_gab5644f471dfa3bd182619601d9b60608}{\+\_\+\+Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags}} {\bfseries Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags}
\item 
\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}\label{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}} 
typedef \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ {\bfseries Ecore\+\_\+\+Fd\+\_\+\+Cb}) (void $\ast$data, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$fd\+\_\+handler)
\begin{DoxyCompactList}\small\item\em A callback used by an \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga952e6571562a3b520324bd5886a5aa09}\label{group__Ecore__FD__Handler__Group_ga952e6571562a3b520324bd5886a5aa09}} 
typedef void($\ast$ {\bfseries Ecore\+\_\+\+Fd\+\_\+\+Prep\+\_\+\+Cb}) (void $\ast$data, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$fd\+\_\+handler)
\begin{DoxyCompactList}\small\item\em A callback used by an \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga5e06d04e8615c08688fe64876b8d03fc}\label{group__Ecore__FD__Handler__Group_ga5e06d04e8615c08688fe64876b8d03fc}} 
typedef \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ {\bfseries Ecore\+\_\+\+Win32\+\_\+\+Handle\+\_\+\+Cb}) (void $\ast$data, \mbox{\hyperlink{group__Ecore__Event__Group_ga0b36f54d74bcfb8dc622844d959c9b64}{Ecore\+\_\+\+Win32\+\_\+\+Handler}} $\ast$wh)
\begin{DoxyCompactList}\small\item\em A callback used by an \mbox{\hyperlink{group__Ecore__Event__Group_ga0b36f54d74bcfb8dc622844d959c9b64}{Ecore\+\_\+\+Win32\+\_\+\+Handler}}. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Ecore__FD__Handler__Group_gab5644f471dfa3bd182619601d9b60608}{\+\_\+\+Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags}} \{ \newline
\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a1699f804eccf88e7e169a4a20f1d44e7}{ECORE\+\_\+\+FD\+\_\+\+READ}} = 1
, \newline
\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a654f7e6af4875742c5349c2cc55d1bab}{ECORE\+\_\+\+FD\+\_\+\+WRITE}} = 2
, \newline
\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a829d91235e3ca5eba61330c96a8074de}{ECORE\+\_\+\+FD\+\_\+\+ERROR}} = 4
, \newline
\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a02d006c9c257744ee17e01deb0de67a3}{ECORE\+\_\+\+FD\+\_\+\+ALWAYS}} = 8
 \}
\begin{DoxyCompactList}\small\item\em What to monitor the file descriptor for\+: reading, writing or error. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$ \mbox{\hyperlink{group__Ecore__FD__Handler__Group_gaf8483e27f0c9fd4a2a7c97fa5539a55f}{ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+add}} (int fd, Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags flags, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}{Ecore\+\_\+\+Fd\+\_\+\+Cb}} func, const void $\ast$data, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}{Ecore\+\_\+\+Fd\+\_\+\+Cb}} buf\+\_\+func, const void $\ast$buf\+\_\+data)
\begin{DoxyCompactList}\small\item\em Adds a callback for activity on the given file descriptor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$ \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga55d216004bd9682cce882c01feb8e90d}{ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+file\+\_\+add}} (int fd, Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags flags, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}{Ecore\+\_\+\+Fd\+\_\+\+Cb}} func, const void $\ast$data, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}{Ecore\+\_\+\+Fd\+\_\+\+Cb}} buf\+\_\+func, const void $\ast$buf\+\_\+data)
\begin{DoxyCompactList}\small\item\em Adds a callback for activity on the given file descriptor. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga072d1719e94e56639abcd385f7cbc692}{ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+prepare\+\_\+callback\+\_\+set}} (\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$fd\+\_\+handler, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga952e6571562a3b520324bd5886a5aa09}{Ecore\+\_\+\+Fd\+\_\+\+Prep\+\_\+\+Cb}} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets the prepare callback with data for a given \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}}. \end{DoxyCompactList}\item 
void $\ast$ \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga259d711cf297b5c2c9dc223005fec583}{ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+del}} (\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$fd\+\_\+handler)
\begin{DoxyCompactList}\small\item\em Marks an FD handler for deletion. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga70d418717552a5258c7dfc1153250e7d}{ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+fd\+\_\+get}} (\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$fd\+\_\+handler)
\begin{DoxyCompactList}\small\item\em Retrieves the file descriptor that the given handler is handling. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Ecore__FD__Handler__Group_gabd3040bd39c95723e42a8c48484b87de}{ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+active\+\_\+get}} (\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$fd\+\_\+handler, Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags flags)
\begin{DoxyCompactList}\small\item\em Gets which flags are active on an FD handler. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Ecore__FD__Handler__Group_gac7d30608fdd863ebde9a7870e2e7f1ff}{ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+active\+\_\+set}} (\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$fd\+\_\+handler, Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags flags)
\begin{DoxyCompactList}\small\item\em Sets what active streams the given FD handler should be monitoring. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Ecore__Event__Group_ga0b36f54d74bcfb8dc622844d959c9b64}{Ecore\+\_\+\+Win32\+\_\+\+Handler}} $\ast$ \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga2d9e673038e129917a49df1e0ea63e72}{ecore\+\_\+main\+\_\+win32\+\_\+handler\+\_\+add}} (void $\ast$h, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga5e06d04e8615c08688fe64876b8d03fc}{Ecore\+\_\+\+Win32\+\_\+\+Handle\+\_\+\+Cb}} func, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Creates a Ecore\+\_\+\+Win32\+\_\+\+Handler object and add it to the win32\+\_\+handlers list. \end{DoxyCompactList}\item 
void $\ast$ \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga54d67b609c05d2d40692ad9bb420c1e2}{ecore\+\_\+main\+\_\+win32\+\_\+handler\+\_\+del}} (\mbox{\hyperlink{group__Ecore__Event__Group_ga0b36f54d74bcfb8dc622844d959c9b64}{Ecore\+\_\+\+Win32\+\_\+\+Handler}} $\ast$win32\+\_\+handler)
\begin{DoxyCompactList}\small\item\em Sets Ecore\+\_\+\+Win32\+\_\+\+Handler object to delete state. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Definition for functions that deal with file descriptor handlers. 

File descriptor handlers facilitate reading, writing and checking for errors without blocking the program or doing expensive pooling. This can be used to monitor a socket, pipe, or other stream for which an FD can be had.

\begin{DoxyWarning}{Warning}
File descriptor handlers can\textquotesingle{}t be used to monitor for file creation, modification or deletion, see \mbox{\hyperlink{group__Ecore__File__Group}{Ecore\+\_\+\+File -\/ Files and directories convenience functions}} for this.
\end{DoxyWarning}
One common FD to be monitored is the standard input(stdin), monitoring it for reading requires a single call\+: 
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keyword}{static}\ \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}}
\DoxyCodeLine{\_my\_cb\_func(\textcolor{keywordtype}{void}\ *data,\ \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\_Fd\_Handler}}\ *handler)}
\DoxyCodeLine{\{}
\DoxyCodeLine{\ \ \ \textcolor{keywordtype}{char}\ c;}
\DoxyCodeLine{\ \ \ scanf(\textcolor{stringliteral}{"{}\%c"{}},\ \&c);\ \textcolor{comment}{//Guaranteed\ not\ to\ block}}
\DoxyCodeLine{\ \ \ ...\ \textcolor{keywordflow}{do}\ stuff\ with\ c\ ...}
\DoxyCodeLine{\}}
\DoxyCodeLine{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_gaf8483e27f0c9fd4a2a7c97fa5539a55f}{ecore\_main\_fd\_handler\_add}}(STDIN\_FILENO,\ \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a1699f804eccf88e7e169a4a20f1d44e7}{ECORE\_FD\_READ}},\ \_my\_cb\_func,\ NULL,\ NULL,\ NULL);}

\end{DoxyCode}


When using a socket, pipe or other stream it\textquotesingle{}s important to remember that errors may occur and as such to monitor not only for reading/writing but also for errors using the \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a829d91235e3ca5eba61330c96a8074de}{ECORE\+\_\+\+FD\+\_\+\+ERROR}} flag.

Example of use of a file descriptor handler\+: \begin{DoxyItemize}
\item \mbox{\hyperlink{ecore_fd_handler_example_c}{ecore fd handlers -\/ Monitoring file descriptors}} \end{DoxyItemize}


\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_gab5644f471dfa3bd182619601d9b60608}\label{group__Ecore__FD__Handler__Group_gab5644f471dfa3bd182619601d9b60608}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!\_Ecore\_Fd\_Handler\_Flags@{\_Ecore\_Fd\_Handler\_Flags}}
\index{\_Ecore\_Fd\_Handler\_Flags@{\_Ecore\_Fd\_Handler\_Flags}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{\_Ecore\_Fd\_Handler\_Flags}{\_Ecore\_Fd\_Handler\_Flags}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Ecore__FD__Handler__Group_gab5644f471dfa3bd182619601d9b60608}{\+\_\+\+Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags}}}



What to monitor the file descriptor for\+: reading, writing or error. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{ECORE\_FD\_READ@{ECORE\_FD\_READ}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ECORE\_FD\_READ@{ECORE\_FD\_READ}}}\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a1699f804eccf88e7e169a4a20f1d44e7}\label{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a1699f804eccf88e7e169a4a20f1d44e7}} 
ECORE\+\_\+\+FD\+\_\+\+READ&Fd Read mask. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ECORE\_FD\_WRITE@{ECORE\_FD\_WRITE}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ECORE\_FD\_WRITE@{ECORE\_FD\_WRITE}}}\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a654f7e6af4875742c5349c2cc55d1bab}\label{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a654f7e6af4875742c5349c2cc55d1bab}} 
ECORE\+\_\+\+FD\+\_\+\+WRITE&Fd Write mask. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ECORE\_FD\_ERROR@{ECORE\_FD\_ERROR}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ECORE\_FD\_ERROR@{ECORE\_FD\_ERROR}}}\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a829d91235e3ca5eba61330c96a8074de}\label{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a829d91235e3ca5eba61330c96a8074de}} 
ECORE\+\_\+\+FD\+\_\+\+ERROR&Fd Error mask. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{ECORE\_FD\_ALWAYS@{ECORE\_FD\_ALWAYS}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ECORE\_FD\_ALWAYS@{ECORE\_FD\_ALWAYS}}}\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a02d006c9c257744ee17e01deb0de67a3}\label{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a02d006c9c257744ee17e01deb0de67a3}} 
ECORE\+\_\+\+FD\+\_\+\+ALWAYS&Fd Always mask -\/ DO NOT USE! \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_gaf8483e27f0c9fd4a2a7c97fa5539a55f}\label{group__Ecore__FD__Handler__Group_gaf8483e27f0c9fd4a2a7c97fa5539a55f}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ecore\_main\_fd\_handler\_add@{ecore\_main\_fd\_handler\_add}}
\index{ecore\_main\_fd\_handler\_add@{ecore\_main\_fd\_handler\_add}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{ecore\_main\_fd\_handler\_add()}{ecore\_main\_fd\_handler\_add()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$ ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+add (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags}]{flags,  }\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}{Ecore\+\_\+\+Fd\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{data,  }\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}{Ecore\+\_\+\+Fd\+\_\+\+Cb}}}]{buf\+\_\+func,  }\item[{const void $\ast$}]{buf\+\_\+data }\end{DoxyParamCaption})}



Adds a callback for activity on the given file descriptor. 


\begin{DoxyParams}{Parameters}
{\em fd} & The file descriptor to watch. \\
\hline
{\em flags} & To monitor it for reading use {\ttfamily ECORE\+\_\+\+FD\+\_\+\+READ}, for writing {\ttfamily ECORE\+\_\+\+FD\+\_\+\+WRITE}, and for error {\ttfamily ECORE\+\_\+\+FD\+\_\+\+ERROR}. Values by $\vert$(ored). \\
\hline
{\em func} & The callback function. \\
\hline
{\em data} & The data to pass to the callback. \\
\hline
{\em buf\+\_\+func} & The function to call to check if any data has been buffered and already read from the fd. May be {\ttfamily NULL}. \\
\hline
{\em buf\+\_\+data} & The data to pass to the {\ttfamily buf\+\_\+func} function. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A fd handler handle on success, {\ttfamily NULL} otherwise.
\end{DoxyReturn}
{\itshape func} will be called during the execution of \mbox{\hyperlink{Ecore_Main_Loop_Page}{The Ecore Main Loop}} when the file descriptor is available for reading, writing, or there has been an error(depending on the given {\itshape flags}).

When {\itshape func} returns {\ttfamily ECORE\+\_\+\+CALLBACK\+\_\+\+CANCEL}, it indicates that the handler should be marked for deletion (identical to calling \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga259d711cf297b5c2c9dc223005fec583}{ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+del}}).

\begin{DoxyWarning}{Warning}
{\itshape buf\+\_\+func} is meant for {\bfseries{internal}} use only and should be {\bfseries{avoided}}.
\end{DoxyWarning}
The return value of {\itshape buf\+\_\+func} has a different meaning, when it returns ECORE\+\_\+\+CALLBACK\+\_\+\+CANCEL, it indicates that {\itshape func} {\bfseries{shouldn\textquotesingle{}t}} be called, and when it returns ECORE\+\_\+\+CALLBACK\+\_\+\+RENEW it indicates {\itshape func} should be called. The return value of {\itshape buf\+\_\+func} will not cause the FD handler to be deleted.

{\itshape buf\+\_\+func} is called during event loop handling to check if data that has been read from the file descriptor is in a buffer and is available to read. Some systems, notably xlib, handle their own buffering, and would otherwise not work with select(). These systems should use a {\itshape buf\+\_\+func}. This is a most annoying hack, only ecore\+\_\+x uses it, so refer to that for an example.

\begin{DoxyWarning}{Warning}
This function should {\bfseries{not}} be used for monitoring \char`\"{}normal\char`\"{} files, like text files. 
\end{DoxyWarning}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_con_client_example_8c-example}{ecore\+\_\+con\+\_\+client\+\_\+example.\+c}}, \mbox{\hyperlink{ecore_evas_basics_example_8c-example}{ecore\+\_\+evas\+\_\+basics\+\_\+example.\+c}}, \mbox{\hyperlink{ecore_exe_example_child_8c-example}{ecore\+\_\+exe\+\_\+example\+\_\+child.\+c}}, \mbox{\hyperlink{ecore_fd_handler_example_8c-example}{ecore\+\_\+fd\+\_\+handler\+\_\+example.\+c}}, and \mbox{\hyperlink{ecore_fd_handler_gnutls_example_8c-example}{ecore\+\_\+fd\+\_\+handler\+\_\+gnutls\+\_\+example.\+c}}.\end{Desc}


References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Lock__Group_ga2974eb3f18404edcc375910cc7e4859c}{EINA\+\_\+\+MAIN\+\_\+\+LOOP\+\_\+\+CHECK\+\_\+\+RETURN\+\_\+\+VAL}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.



Referenced by \mbox{\hyperlink{group__Ecore__Drm__Device__Group_ga553c3126d3eec540772b9216713ff1c7}{ecore\+\_\+drm\+\_\+device\+\_\+open()}}, \mbox{\hyperlink{group__Ecore__FB__Group_ga3ba1e8070ac6af46ca45c490c007a83b}{ecore\+\_\+fb\+\_\+input\+\_\+device\+\_\+listen()}}, \mbox{\hyperlink{group__Ecore__Pipe__Group_gaaa0c221d03d11b90e48ba0b3cd70e7c8}{ecore\+\_\+pipe\+\_\+full\+\_\+add()}}, \mbox{\hyperlink{group__Ecore__Pipe__Group_gacf6095f3a1b07d9aec2bd76909b76239}{ecore\+\_\+pipe\+\_\+thaw()}}, \mbox{\hyperlink{group__Ecore__Wl2__Display__Group_gae2609ecf3c650e35f713943e718b921f}{ecore\+\_\+wl2\+\_\+display\+\_\+create()}}, and \mbox{\hyperlink{group__Ecore__Wl__Init__Group_gaf158fc255ed0fbbe4721475a87d86828}{ecore\+\_\+wl\+\_\+init()}}.

\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga55d216004bd9682cce882c01feb8e90d}\label{group__Ecore__FD__Handler__Group_ga55d216004bd9682cce882c01feb8e90d}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ecore\_main\_fd\_handler\_file\_add@{ecore\_main\_fd\_handler\_file\_add}}
\index{ecore\_main\_fd\_handler\_file\_add@{ecore\_main\_fd\_handler\_file\_add}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{ecore\_main\_fd\_handler\_file\_add()}{ecore\_main\_fd\_handler\_file\_add()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$ ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+file\+\_\+add (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags}]{flags,  }\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}{Ecore\+\_\+\+Fd\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{data,  }\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga233a4c637db3fe2257c08ef64ca42b4a}{Ecore\+\_\+\+Fd\+\_\+\+Cb}}}]{buf\+\_\+func,  }\item[{const void $\ast$}]{buf\+\_\+data }\end{DoxyParamCaption})}



Adds a callback for activity on the given file descriptor. 


\begin{DoxyParams}{Parameters}
{\em fd} & The file descriptor to watch. \\
\hline
{\em flags} & To monitor it for reading use {\ttfamily ECORE\+\_\+\+FD\+\_\+\+READ}, for writing {\ttfamily ECORE\+\_\+\+FD\+\_\+\+WRITE}, and for error {\ttfamily ECORE\+\_\+\+FD\+\_\+\+ERROR}. Values by $\vert$(ored). \\
\hline
{\em func} & The callback function. \\
\hline
{\em data} & The data to pass to the callback. \\
\hline
{\em buf\+\_\+func} & The function to call to check if any data has been buffered and already read from the fd. May be {\ttfamily NULL}. \\
\hline
{\em buf\+\_\+data} & The data to pass to the {\ttfamily buf\+\_\+func} function. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A fd handler handle on success, {\ttfamily NULL} otherwise.
\end{DoxyReturn}
This function is identical to ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+add, except that it supports regular files. \begin{DoxyWarning}{Warning}
This function should ONLY be called with ECORE\+\_\+\+FD\+\_\+\+ERROR, otherwise it will call the fd handler constantly. 

Do not use this function unless you know what you are doing.
\end{DoxyWarning}
\begin{DoxySince}{Since}
1.\+7 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Lock__Group_ga2974eb3f18404edcc375910cc7e4859c}{EINA\+\_\+\+MAIN\+\_\+\+LOOP\+\_\+\+CHECK\+\_\+\+RETURN\+\_\+\+VAL}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.



Referenced by \mbox{\hyperlink{group__Ecore__Wl2__Dnd__Group_ga6d82480fec6a1c706c226d9761715018}{ecore\+\_\+wl2\+\_\+offer\+\_\+receive()}}, and \mbox{\hyperlink{group__Eeze__Disk_ga92f1e4a2c653e8c581df72e4cd46d8b3}{eeze\+\_\+mount\+\_\+tabs\+\_\+watch()}}.

\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga072d1719e94e56639abcd385f7cbc692}\label{group__Ecore__FD__Handler__Group_ga072d1719e94e56639abcd385f7cbc692}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ecore\_main\_fd\_handler\_prepare\_callback\_set@{ecore\_main\_fd\_handler\_prepare\_callback\_set}}
\index{ecore\_main\_fd\_handler\_prepare\_callback\_set@{ecore\_main\_fd\_handler\_prepare\_callback\_set}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{ecore\_main\_fd\_handler\_prepare\_callback\_set()}{ecore\_main\_fd\_handler\_prepare\_callback\_set()}}
{\footnotesize\ttfamily void ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+prepare\+\_\+callback\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$}]{fd\+\_\+handler,  }\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga952e6571562a3b520324bd5886a5aa09}{Ecore\+\_\+\+Fd\+\_\+\+Prep\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Sets the prepare callback with data for a given \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}}. 


\begin{DoxyParams}{Parameters}
{\em fd\+\_\+handler} & The fd handler \\
\hline
{\em func} & The prep function \\
\hline
{\em data} & The data to pass to the prep function\\
\hline
\end{DoxyParams}
This function will be called prior to any fd handler\textquotesingle{}s callback function (even the other fd handlers), before entering the main loop select function.

\begin{DoxyNote}{Note}
Once a prepare callback is set for a fd handler, it cannot be changed. You need to delete the fd handler and create a new one, to set another callback. 

You probably don\textquotesingle{}t need this function. It is only necessary for very uncommon cases that need special behavior. 
\end{DoxyNote}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_fd_handler_example_8c-example}{ecore\+\_\+fd\+\_\+handler\+\_\+example.\+c}}.\end{Desc}


References \mbox{\hyperlink{group__Eina__List__Group_ga625698a383dda8fc0db245a1c7608c49}{eina\+\_\+list\+\_\+append()}}, \mbox{\hyperlink{group__Eina__List__Group_ga4ba54f63ed74cb7d81a1046926a93f4c}{eina\+\_\+list\+\_\+data\+\_\+find()}}, and \mbox{\hyperlink{group__Eina__Lock__Group_ga6900a2b986f5536b73210e2560675cb0}{EINA\+\_\+\+MAIN\+\_\+\+LOOP\+\_\+\+CHECK\+\_\+\+RETURN}}.



Referenced by \mbox{\hyperlink{group__Ecore__Wl2__Display__Group_gae2609ecf3c650e35f713943e718b921f}{ecore\+\_\+wl2\+\_\+display\+\_\+create()}}.

\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga259d711cf297b5c2c9dc223005fec583}\label{group__Ecore__FD__Handler__Group_ga259d711cf297b5c2c9dc223005fec583}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ecore\_main\_fd\_handler\_del@{ecore\_main\_fd\_handler\_del}}
\index{ecore\_main\_fd\_handler\_del@{ecore\_main\_fd\_handler\_del}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{ecore\_main\_fd\_handler\_del()}{ecore\_main\_fd\_handler\_del()}}
{\footnotesize\ttfamily void $\ast$ ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$}]{fd\+\_\+handler }\end{DoxyParamCaption})}



Marks an FD handler for deletion. 


\begin{DoxyParams}{Parameters}
{\em fd\+\_\+handler} & The FD handler. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The data pointer set using \mbox{\hyperlink{group__Ecore__FD__Handler__Group_gaf8483e27f0c9fd4a2a7c97fa5539a55f}{ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+add}}, for {\itshape fd\+\_\+handler} on success, {\ttfamily NULL} otherwise. This function marks an fd handler to be deleted during an iteration of the main loop. It does NOT close the associated fd!
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
If the underlying fd is already closed ecore may complain if the main loop is using epoll internally, and also in some rare cases this may cause crashes and instability. Remember to delete your fd handlers before the fds they listen to are closed. 
\end{DoxyWarning}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_fd_handler_example_8c-example}{ecore\+\_\+fd\+\_\+handler\+\_\+example.\+c}}.\end{Desc}


References \mbox{\hyperlink{group__Eina__Lock__Group_ga2974eb3f18404edcc375910cc7e4859c}{EINA\+\_\+\+MAIN\+\_\+\+LOOP\+\_\+\+CHECK\+\_\+\+RETURN\+\_\+\+VAL}}.



Referenced by \mbox{\hyperlink{group__Ecore__Avahi__Group_ga0492fbb19ffe376b9aabfe2a22851b27}{ecore\+\_\+avahi\+\_\+del()}}, \mbox{\hyperlink{group__Eeze__Disk_ga915b0c6e0c38d3e0b9e5bc9c0625b553}{eeze\+\_\+mount\+\_\+tabs\+\_\+unwatch()}}, \mbox{\hyperlink{group__Eeze__Watch_ga6d17487ee2db125e2f61308e285ac8dc}{eeze\+\_\+udev\+\_\+watch\+\_\+del()}}, and \mbox{\hyperlink{group__Elput__Input__Group_gaad0cd8a925620087e80b3e74fcaad30c}{elput\+\_\+input\+\_\+shutdown()}}.

\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga70d418717552a5258c7dfc1153250e7d}\label{group__Ecore__FD__Handler__Group_ga70d418717552a5258c7dfc1153250e7d}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ecore\_main\_fd\_handler\_fd\_get@{ecore\_main\_fd\_handler\_fd\_get}}
\index{ecore\_main\_fd\_handler\_fd\_get@{ecore\_main\_fd\_handler\_fd\_get}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{ecore\_main\_fd\_handler\_fd\_get()}{ecore\_main\_fd\_handler\_fd\_get()}}
{\footnotesize\ttfamily int ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+fd\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$}]{fd\+\_\+handler }\end{DoxyParamCaption})}



Retrieves the file descriptor that the given handler is handling. 


\begin{DoxyParams}{Parameters}
{\em fd\+\_\+handler} & The given FD handler. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The file descriptor the handler is watching. 
\end{DoxyReturn}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_fd_handler_example_8c-example}{ecore\+\_\+fd\+\_\+handler\+\_\+example.\+c}}.\end{Desc}


References \mbox{\hyperlink{group__Eina__Lock__Group_ga2974eb3f18404edcc375910cc7e4859c}{EINA\+\_\+\+MAIN\+\_\+\+LOOP\+\_\+\+CHECK\+\_\+\+RETURN\+\_\+\+VAL}}.



Referenced by \mbox{\hyperlink{group__Ecore__Input__Group_ga8152f39e1e43a0818c64dc382aa953fd}{ecore\+\_\+input\+\_\+joystick\+\_\+name\+\_\+get()}}.

\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_gabd3040bd39c95723e42a8c48484b87de}\label{group__Ecore__FD__Handler__Group_gabd3040bd39c95723e42a8c48484b87de}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ecore\_main\_fd\_handler\_active\_get@{ecore\_main\_fd\_handler\_active\_get}}
\index{ecore\_main\_fd\_handler\_active\_get@{ecore\_main\_fd\_handler\_active\_get}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{ecore\_main\_fd\_handler\_active\_get()}{ecore\_main\_fd\_handler\_active\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+active\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$}]{fd\+\_\+handler,  }\item[{Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags}]{flags }\end{DoxyParamCaption})}



Gets which flags are active on an FD handler. 


\begin{DoxyParams}{Parameters}
{\em fd\+\_\+handler} & The given FD handler. \\
\hline
{\em flags} & The flags, {\ttfamily ECORE\+\_\+\+FD\+\_\+\+READ}, {\ttfamily ECORE\+\_\+\+FD\+\_\+\+WRITE} or {\ttfamily ECORE\+\_\+\+FD\+\_\+\+ERROR} to query. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+TRUE} if any of the given flags are active, {\ttfamily EINA\+\_\+\+FALSE} otherwise. 
\end{DoxyReturn}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_fd_handler_example_8c-example}{ecore\+\_\+fd\+\_\+handler\+\_\+example.\+c}}.\end{Desc}


References \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a829d91235e3ca5eba61330c96a8074de}{ECORE\+\_\+\+FD\+\_\+\+ERROR}}, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a1699f804eccf88e7e169a4a20f1d44e7}{ECORE\+\_\+\+FD\+\_\+\+READ}}, \mbox{\hyperlink{group__Ecore__FD__Handler__Group_ggab5644f471dfa3bd182619601d9b60608a654f7e6af4875742c5349c2cc55d1bab}{ECORE\+\_\+\+FD\+\_\+\+WRITE}}, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Lock__Group_ga2974eb3f18404edcc375910cc7e4859c}{EINA\+\_\+\+MAIN\+\_\+\+LOOP\+\_\+\+CHECK\+\_\+\+RETURN\+\_\+\+VAL}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.

\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_gac7d30608fdd863ebde9a7870e2e7f1ff}\label{group__Ecore__FD__Handler__Group_gac7d30608fdd863ebde9a7870e2e7f1ff}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ecore\_main\_fd\_handler\_active\_set@{ecore\_main\_fd\_handler\_active\_set}}
\index{ecore\_main\_fd\_handler\_active\_set@{ecore\_main\_fd\_handler\_active\_set}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{ecore\_main\_fd\_handler\_active\_set()}{ecore\_main\_fd\_handler\_active\_set()}}
{\footnotesize\ttfamily void ecore\+\_\+main\+\_\+fd\+\_\+handler\+\_\+active\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga225121ed2123da4b52b76aa08d78c220}{Ecore\+\_\+\+Fd\+\_\+\+Handler}} $\ast$}]{fd\+\_\+handler,  }\item[{Ecore\+\_\+\+Fd\+\_\+\+Handler\+\_\+\+Flags}]{flags }\end{DoxyParamCaption})}



Sets what active streams the given FD handler should be monitoring. 


\begin{DoxyParams}{Parameters}
{\em fd\+\_\+handler} & The given FD handler. \\
\hline
{\em flags} & The flags to be watching. \\
\hline
\end{DoxyParams}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_fd_handler_gnutls_example_8c-example}{ecore\+\_\+fd\+\_\+handler\+\_\+gnutls\+\_\+example.\+c}}.\end{Desc}


Referenced by \mbox{\hyperlink{Ecore__Wl2_8h_ab2cef3992353f3a8b2202e68f80ce569}{ecore\+\_\+wl2\+\_\+display\+\_\+flush()}}.

\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga2d9e673038e129917a49df1e0ea63e72}\label{group__Ecore__FD__Handler__Group_ga2d9e673038e129917a49df1e0ea63e72}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ecore\_main\_win32\_handler\_add@{ecore\_main\_win32\_handler\_add}}
\index{ecore\_main\_win32\_handler\_add@{ecore\_main\_win32\_handler\_add}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{ecore\_main\_win32\_handler\_add()}{ecore\_main\_win32\_handler\_add()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Ecore__Event__Group_ga0b36f54d74bcfb8dc622844d959c9b64}{Ecore\+\_\+\+Win32\+\_\+\+Handler}} $\ast$ ecore\+\_\+main\+\_\+win32\+\_\+handler\+\_\+add (\begin{DoxyParamCaption}\item[{void $\ast$}]{h,  }\item[{\mbox{\hyperlink{group__Ecore__FD__Handler__Group_ga5e06d04e8615c08688fe64876b8d03fc}{Ecore\+\_\+\+Win32\+\_\+\+Handle\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Creates a Ecore\+\_\+\+Win32\+\_\+\+Handler object and add it to the win32\+\_\+handlers list. 


\begin{DoxyParams}{Parameters}
{\em h} & The win32 handler. \\
\hline
{\em func} & The function to add as a callback. \\
\hline
{\em data} & The data to pass to the callback when it is called. \\
\hline
\end{DoxyParams}
\begin{Desc}
\item[Examples]\par
\mbox{\hyperlink{ecore_exe_example_child_8c-example}{ecore\+\_\+exe\+\_\+example\+\_\+child.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Ecore__FD__Handler__Group_ga54d67b609c05d2d40692ad9bb420c1e2}\label{group__Ecore__FD__Handler__Group_ga54d67b609c05d2d40692ad9bb420c1e2}} 
\index{File Descriptor Handling Functions@{File Descriptor Handling Functions}!ecore\_main\_win32\_handler\_del@{ecore\_main\_win32\_handler\_del}}
\index{ecore\_main\_win32\_handler\_del@{ecore\_main\_win32\_handler\_del}!File Descriptor Handling Functions@{File Descriptor Handling Functions}}
\doxysubsubsection{\texorpdfstring{ecore\_main\_win32\_handler\_del()}{ecore\_main\_win32\_handler\_del()}}
{\footnotesize\ttfamily void $\ast$ ecore\+\_\+main\+\_\+win32\+\_\+handler\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Event__Group_ga0b36f54d74bcfb8dc622844d959c9b64}{Ecore\+\_\+\+Win32\+\_\+\+Handler}} $\ast$}]{win32\+\_\+handler }\end{DoxyParamCaption})}



Sets Ecore\+\_\+\+Win32\+\_\+\+Handler object to delete state. 

The handler will be deleted in the \+\_\+ecore\+\_\+main\+\_\+win32\+\_\+handlers\+\_\+cleanup function.


\begin{DoxyParams}{Parameters}
{\em win32\+\_\+handler} & The Ecore\+\_\+\+Win32\+\_\+\+Handler object. \\
\hline
\end{DoxyParams}
