\doxysubsection{Eio file and directory monitoring API}
\hypertarget{group__Eio__Monitor}{}\label{group__Eio__Monitor}\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Eio__Monitor__Error}{\+\_\+\+Eio\+\_\+\+Monitor\+\_\+\+Error}}
\item 
struct \mbox{\hyperlink{struct__Eio__Monitor__Event}{\+\_\+\+Eio\+\_\+\+Monitor\+\_\+\+Event}}
\end{DoxyCompactItemize}
\doxysubsubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{group__Eio__Monitor_ga88e01b740cbbc59d3b8456fa022456c9}\label{group__Eio__Monitor_ga88e01b740cbbc59d3b8456fa022456c9} 
typedef struct \+\_\+\+Eio\+\_\+\+Monitor {\bfseries Eio\+\_\+\+Monitor}
\item 
\Hypertarget{group__Eio__Monitor_ga4f59b65cd8b04fae9076763648f83312}\label{group__Eio__Monitor_ga4f59b65cd8b04fae9076763648f83312} 
typedef struct \mbox{\hyperlink{struct__Eio__Monitor__Error}{\+\_\+\+Eio\+\_\+\+Monitor\+\_\+\+Error}} {\bfseries Eio\+\_\+\+Monitor\+\_\+\+Error}
\item 
\Hypertarget{group__Eio__Monitor_gac037bf17798ca3573a9b8287bb44f993}\label{group__Eio__Monitor_gac037bf17798ca3573a9b8287bb44f993} 
typedef struct \mbox{\hyperlink{struct__Eio__Monitor__Event}{\+\_\+\+Eio\+\_\+\+Monitor\+\_\+\+Event}} {\bfseries Eio\+\_\+\+Monitor\+\_\+\+Event}
\end{DoxyCompactItemize}
\doxysubsubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
EIO\+\_\+\+API Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__Eio__Monitor_ga88eefb705bf6512400a890ceafde57f1}{eio\+\_\+monitor\+\_\+add}} (const char \texorpdfstring{$\ast$}{*}path)
\begin{DoxyCompactList}\small\item\em Adds a file/directory to monitor (inotify mechanism) \end{DoxyCompactList}\item 
EIO\+\_\+\+API Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__Eio__Monitor_ga61c44160641b291706fe24b635545d70}{eio\+\_\+monitor\+\_\+stringshared\+\_\+add}} (const char \texorpdfstring{$\ast$}{*}path)
\begin{DoxyCompactList}\small\item\em Adds a file/directory to monitor. \end{DoxyCompactList}\item 
EIO\+\_\+\+API void \mbox{\hyperlink{group__Eio__Monitor_ga05cbc38b310f34c56869b40034048742}{eio\+\_\+monitor\+\_\+del}} (Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*}monitor)
\begin{DoxyCompactList}\small\item\em Deletes a path from the “watched” list. \end{DoxyCompactList}\item 
EIO\+\_\+\+API const char \texorpdfstring{$\ast$}{*} \mbox{\hyperlink{group__Eio__Monitor_ga775bb091df02984614a8d135ab13654f}{eio\+\_\+monitor\+\_\+path\+\_\+get}} (Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*}monitor)
\begin{DoxyCompactList}\small\item\em returns the path being watched by the given Eio\+\_\+\+Monitor. \end{DoxyCompactList}\item 
EIO\+\_\+\+API \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eio__Monitor_gaf0597e2f1e43351c58b829ca03fa38bf}{eio\+\_\+monitor\+\_\+fallback\+\_\+check}} (const Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*}monitor)
\begin{DoxyCompactList}\small\item\em Check whether a monitor is using the fallback backend. \end{DoxyCompactList}\item 
EIO\+\_\+\+API \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eio__Monitor_ga23776e04be1885e23f04d830e5a5cf9e}{eio\+\_\+monitor\+\_\+has\+\_\+context}} (const Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*}monitor, const char \texorpdfstring{$\ast$}{*}path)
\begin{DoxyCompactList}\small\item\em Check if a monitor has the context about a file or not. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{group__Eio__Monitor_gae3266ed35f44ae8c65d32ba4e9293f97}\label{group__Eio__Monitor_gae3266ed35f44ae8c65d32ba4e9293f97} 
EIO\+\_\+\+API int {\bfseries EIO\+\_\+\+MONITOR\+\_\+\+FILE\+\_\+\+CREATED}
\begin{DoxyCompactList}\small\item\em A new file was created in a watched directory. \end{DoxyCompactList}\item 
\Hypertarget{group__Eio__Monitor_gae5902e10025c8f18be050f3e1a8dca93}\label{group__Eio__Monitor_gae5902e10025c8f18be050f3e1a8dca93} 
EIO\+\_\+\+API int {\bfseries EIO\+\_\+\+MONITOR\+\_\+\+FILE\+\_\+\+DELETED}
\begin{DoxyCompactList}\small\item\em A watched file was deleted, or a file in a watched directory was deleted. \end{DoxyCompactList}\item 
\Hypertarget{group__Eio__Monitor_ga32f7035a95562b310b47f18c64d41703}\label{group__Eio__Monitor_ga32f7035a95562b310b47f18c64d41703} 
EIO\+\_\+\+API int {\bfseries EIO\+\_\+\+MONITOR\+\_\+\+FILE\+\_\+\+MODIFIED}
\begin{DoxyCompactList}\small\item\em A file was modified in a watched directory. \end{DoxyCompactList}\item 
EIO\+\_\+\+API int \mbox{\hyperlink{group__Eio__Monitor_ga5120e3f3257f74bf664eaf91af85589f}{EIO\+\_\+\+MONITOR\+\_\+\+FILE\+\_\+\+CLOSED}}
\begin{DoxyCompactList}\small\item\em A file was closed in a watched directory. \end{DoxyCompactList}\item 
\Hypertarget{group__Eio__Monitor_ga0187716b47e3a017b7e0f3d776b075f2}\label{group__Eio__Monitor_ga0187716b47e3a017b7e0f3d776b075f2} 
EIO\+\_\+\+API int {\bfseries EIO\+\_\+\+MONITOR\+\_\+\+DIRECTORY\+\_\+\+CREATED}
\begin{DoxyCompactList}\small\item\em A new directory was created in a watched directory. \end{DoxyCompactList}\item 
\Hypertarget{group__Eio__Monitor_ga0e57e51c6f9fbbd85253abfc63f99f32}\label{group__Eio__Monitor_ga0e57e51c6f9fbbd85253abfc63f99f32} 
EIO\+\_\+\+API int {\bfseries EIO\+\_\+\+MONITOR\+\_\+\+DIRECTORY\+\_\+\+DELETED}
\begin{DoxyCompactList}\small\item\em A directory has been deleted\+: this can be either a watched directory or one of its subdirectories. \end{DoxyCompactList}\item 
\Hypertarget{group__Eio__Monitor_gafca40df57031ed0e82ecf07f4180f468}\label{group__Eio__Monitor_gafca40df57031ed0e82ecf07f4180f468} 
EIO\+\_\+\+API int {\bfseries EIO\+\_\+\+MONITOR\+\_\+\+DIRECTORY\+\_\+\+MODIFIED}
\begin{DoxyCompactList}\small\item\em A directory has been modified in a watched directory. \end{DoxyCompactList}\item 
EIO\+\_\+\+API int \mbox{\hyperlink{group__Eio__Monitor_gaf1045d4f7d606e0dedf10dc40b9a2d3f}{EIO\+\_\+\+MONITOR\+\_\+\+DIRECTORY\+\_\+\+CLOSED}}
\begin{DoxyCompactList}\small\item\em A directory has been closed in a watched directory. \end{DoxyCompactList}\item 
EIO\+\_\+\+API int \mbox{\hyperlink{group__Eio__Monitor_ga0f898552e7c6d88db2641599cccf6208}{EIO\+\_\+\+MONITOR\+\_\+\+SELF\+\_\+\+RENAME}}
\begin{DoxyCompactList}\small\item\em The monitored path has been renamed, an error could happen just after if the renamed path doesn\textquotesingle{}t exist. \end{DoxyCompactList}\item 
EIO\+\_\+\+API int \mbox{\hyperlink{group__Eio__Monitor_ga082de6c1272836fd22f9e369d602e3d5}{EIO\+\_\+\+MONITOR\+\_\+\+SELF\+\_\+\+DELETED}}
\begin{DoxyCompactList}\small\item\em The monitored path has been removed. \end{DoxyCompactList}\item 
EIO\+\_\+\+API int \mbox{\hyperlink{group__Eio__Monitor_ga5b3a30331491f0d05e3c7714350dfdf0}{EIO\+\_\+\+MONITOR\+\_\+\+ERROR}}
\begin{DoxyCompactList}\small\item\em During operation the monitor failed and will no longer work. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}


These function monitor changes in directories and files

These functions use the best available method to monitor changes on a specified directory or file. They send ecore events when changes occur, and they maintain internal refcounts to reduce resource consumption on duplicate monitor targets. 

\doxysubsubsection{Function Documentation}
\Hypertarget{group__Eio__Monitor_ga88eefb705bf6512400a890ceafde57f1}\label{group__Eio__Monitor_ga88eefb705bf6512400a890ceafde57f1} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!eio\_monitor\_add@{eio\_monitor\_add}}
\index{eio\_monitor\_add@{eio\_monitor\_add}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{eio\_monitor\_add()}{eio\_monitor\_add()}}
{\footnotesize\ttfamily EIO\+\_\+\+API Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*} eio\+\_\+monitor\+\_\+add (\begin{DoxyParamCaption}\item[{const char \texorpdfstring{$\ast$}{*}}]{path }\end{DoxyParamCaption})}



Adds a file/directory to monitor (inotify mechanism) 


\begin{DoxyParams}{Parameters}
{\em path} & file/directory to monitor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
NULL in case of a failure or a pointer to the monitor in case of success.
\end{DoxyReturn}
This function will add the given path to its internal list of files to monitor. It utilizes the inotify mechanism introduced in kernel 2.\+6.\+13 for passive monitoring. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}, \mbox{\hyperlink{group__Eina__Stringshare__Group_ga4e3ce40744291c1fb8574e26883c0bf2}{eina\+\_\+stringshare\+\_\+add()}}, \mbox{\hyperlink{group__Eina__Stringshare__Group_ga5538b4a134987b8a01744fad1a845ba4}{eina\+\_\+stringshare\+\_\+del()}}, and \mbox{\hyperlink{group__Eio__Monitor_ga61c44160641b291706fe24b635545d70}{eio\+\_\+monitor\+\_\+stringshared\+\_\+add()}}.

\Hypertarget{group__Eio__Monitor_ga61c44160641b291706fe24b635545d70}\label{group__Eio__Monitor_ga61c44160641b291706fe24b635545d70} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!eio\_monitor\_stringshared\_add@{eio\_monitor\_stringshared\_add}}
\index{eio\_monitor\_stringshared\_add@{eio\_monitor\_stringshared\_add}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{eio\_monitor\_stringshared\_add()}{eio\_monitor\_stringshared\_add()}}
{\footnotesize\ttfamily EIO\+\_\+\+API Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*} eio\+\_\+monitor\+\_\+stringshared\+\_\+add (\begin{DoxyParamCaption}\item[{const char \texorpdfstring{$\ast$}{*}}]{path }\end{DoxyParamCaption})}



Adds a file/directory to monitor. 


\begin{DoxyParams}{Parameters}
{\em path} & file/directory to monitor \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
NULL in case of a failure or a pointer to the monitor in case of success. 
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
Do NOT pass non-\/stringshared strings to this function! If you don\textquotesingle{}t know what this means, use \doxylink{group__Eio__Monitor_ga88eefb705bf6512400a890ceafde57f1}{eio\+\_\+monitor\+\_\+add()}.
\end{DoxyWarning}
This function is just like \doxylink{group__Eio__Monitor_ga88eefb705bf6512400a890ceafde57f1}{eio\+\_\+monitor\+\_\+add()}, however the string passed by argument must be created using \doxylink{group__Eina__Stringshare__Group_ga4e3ce40744291c1fb8574e26883c0bf2}{eina\+\_\+stringshare\+\_\+add()}. 

References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Hash__Group_ga315f85c5deae8e099e5a5a17d3557456}{eina\+\_\+hash\+\_\+del()}}, \mbox{\hyperlink{group__Eina__Hash__Group_ga84a3b957ede675cb03f3c344695c1282}{eina\+\_\+hash\+\_\+direct\+\_\+add()}}, \mbox{\hyperlink{group__Eina__Hash__Group_ga6e9dc02a249e1fcdb64e38e7dc47afb3}{eina\+\_\+hash\+\_\+find()}}, \mbox{\hyperlink{group__Eina__Refcount_gae7cbb849fe94000305dd344b98344a95}{EINA\+\_\+\+REFCOUNT\+\_\+\+INIT}}, \mbox{\hyperlink{group__Eina__Refcount_ga1303550c19416335a5e4d012f3f5ded0}{EINA\+\_\+\+REFCOUNT\+\_\+\+REF}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}, \mbox{\hyperlink{group__Eina__Stringshare__Group_ga5538b4a134987b8a01744fad1a845ba4}{eina\+\_\+stringshare\+\_\+del()}}, \mbox{\hyperlink{group__Eina__Stringshare__Group_ga8c841e078a37b556e0bf91825f3df174}{eina\+\_\+stringshare\+\_\+ref()}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.



Referenced by \mbox{\hyperlink{group__Eio__Monitor_ga88eefb705bf6512400a890ceafde57f1}{eio\+\_\+monitor\+\_\+add()}}.

\Hypertarget{group__Eio__Monitor_ga05cbc38b310f34c56869b40034048742}\label{group__Eio__Monitor_ga05cbc38b310f34c56869b40034048742} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!eio\_monitor\_del@{eio\_monitor\_del}}
\index{eio\_monitor\_del@{eio\_monitor\_del}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{eio\_monitor\_del()}{eio\_monitor\_del()}}
{\footnotesize\ttfamily EIO\+\_\+\+API void eio\+\_\+monitor\+\_\+del (\begin{DoxyParamCaption}\item[{Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*}}]{monitor }\end{DoxyParamCaption})}



Deletes a path from the “watched” list. 


\begin{DoxyParams}{Parameters}
{\em monitor} & The Eio\+\_\+\+Monitor you want to stop watching. It can only be an Eio\+\_\+\+Monitor returned to you from calling \doxylink{group__Eio__Monitor_ga88eefb705bf6512400a890ceafde57f1}{eio\+\_\+monitor\+\_\+add()} or \doxylink{group__Eio__Monitor_ga61c44160641b291706fe24b635545d70}{eio\+\_\+monitor\+\_\+stringshared\+\_\+add()} \\
\hline
\end{DoxyParams}


References \mbox{\hyperlink{group__Eina__Refcount_ga85c005aaee53141665fb5ea88e10f5e0}{EINA\+\_\+\+REFCOUNT\+\_\+\+UNREF}}.

\Hypertarget{group__Eio__Monitor_ga775bb091df02984614a8d135ab13654f}\label{group__Eio__Monitor_ga775bb091df02984614a8d135ab13654f} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!eio\_monitor\_path\_get@{eio\_monitor\_path\_get}}
\index{eio\_monitor\_path\_get@{eio\_monitor\_path\_get}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{eio\_monitor\_path\_get()}{eio\_monitor\_path\_get()}}
{\footnotesize\ttfamily EIO\+\_\+\+API const char \texorpdfstring{$\ast$}{*} eio\+\_\+monitor\+\_\+path\+\_\+get (\begin{DoxyParamCaption}\item[{Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*}}]{monitor }\end{DoxyParamCaption})}



returns the path being watched by the given Eio\+\_\+\+Monitor. 


\begin{DoxyParams}{Parameters}
{\em monitor} & Eio\+\_\+\+Monitor to return the path of \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The stringshared path belonging to {\ttfamily monitor} 
\end{DoxyReturn}


References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\Hypertarget{group__Eio__Monitor_gaf0597e2f1e43351c58b829ca03fa38bf}\label{group__Eio__Monitor_gaf0597e2f1e43351c58b829ca03fa38bf} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!eio\_monitor\_fallback\_check@{eio\_monitor\_fallback\_check}}
\index{eio\_monitor\_fallback\_check@{eio\_monitor\_fallback\_check}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{eio\_monitor\_fallback\_check()}{eio\_monitor\_fallback\_check()}}
{\footnotesize\ttfamily EIO\+\_\+\+API \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eio\+\_\+monitor\+\_\+fallback\+\_\+check (\begin{DoxyParamCaption}\item[{const Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*}}]{monitor }\end{DoxyParamCaption})}



Check whether a monitor is using the fallback backend. 


\begin{DoxyParams}{Parameters}
{\em monitor} & The Eio\+\_\+\+Monitor to check \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
EINA\+\_\+\+TRUE only if the monitor is valid and is using the fallback monitoring mechanism
\end{DoxyReturn}
Fallback monitors are unable to provide the CLOSED or RENAME events. It\textquotesingle{}s important to check whether a monitor is a fallback monitor before relying on these events.

\begin{DoxySince}{Since}
1.\+21 
\end{DoxySince}


References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, and \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\Hypertarget{group__Eio__Monitor_ga23776e04be1885e23f04d830e5a5cf9e}\label{group__Eio__Monitor_ga23776e04be1885e23f04d830e5a5cf9e} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!eio\_monitor\_has\_context@{eio\_monitor\_has\_context}}
\index{eio\_monitor\_has\_context@{eio\_monitor\_has\_context}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{eio\_monitor\_has\_context()}{eio\_monitor\_has\_context()}}
{\footnotesize\ttfamily EIO\+\_\+\+API \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eio\+\_\+monitor\+\_\+has\+\_\+context (\begin{DoxyParamCaption}\item[{const Eio\+\_\+\+Monitor \texorpdfstring{$\ast$}{*}}]{monitor,  }\item[{const char \texorpdfstring{$\ast$}{*}}]{path }\end{DoxyParamCaption})}



Check if a monitor has the context about a file or not. 


\begin{DoxyParams}{Parameters}
{\em monitor} & The Eio\+\_\+\+Monitor to check \\
\hline
{\em path} & The path to check \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
EINA\+\_\+\+TRUE if there is context, EINA\+\_\+\+FALSE otherwise.
\end{DoxyReturn}
There are Monitors that need context about a file before they can monitor the file correctly. As an example\+: If you publish a file in your API before the monitor has this file in his context, and the file gets deleted as a reaction to this, the monitor will not be able to emit the correct DELETE event even if the file is in the monitors path.

In case the monitor does not yet have context, you can be sure that the monitor will bring up an FILE\+\_\+\+ADD event about that file.

\begin{DoxySince}{Since}
1.\+23 
\end{DoxySince}


\doxysubsubsection{Variable Documentation}
\Hypertarget{group__Eio__Monitor_ga5120e3f3257f74bf664eaf91af85589f}\label{group__Eio__Monitor_ga5120e3f3257f74bf664eaf91af85589f} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!EIO\_MONITOR\_FILE\_CLOSED@{EIO\_MONITOR\_FILE\_CLOSED}}
\index{EIO\_MONITOR\_FILE\_CLOSED@{EIO\_MONITOR\_FILE\_CLOSED}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{EIO\_MONITOR\_FILE\_CLOSED}{EIO\_MONITOR\_FILE\_CLOSED}}
{\footnotesize\ttfamily EIO\+\_\+\+API int EIO\+\_\+\+MONITOR\+\_\+\+FILE\+\_\+\+CLOSED\hspace{0.3cm}{\ttfamily [extern]}}



A file was closed in a watched directory. 

This event is never sent on Windows and OSX, or for non-\/fallback monitors \Hypertarget{group__Eio__Monitor_gaf1045d4f7d606e0dedf10dc40b9a2d3f}\label{group__Eio__Monitor_gaf1045d4f7d606e0dedf10dc40b9a2d3f} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!EIO\_MONITOR\_DIRECTORY\_CLOSED@{EIO\_MONITOR\_DIRECTORY\_CLOSED}}
\index{EIO\_MONITOR\_DIRECTORY\_CLOSED@{EIO\_MONITOR\_DIRECTORY\_CLOSED}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{EIO\_MONITOR\_DIRECTORY\_CLOSED}{EIO\_MONITOR\_DIRECTORY\_CLOSED}}
{\footnotesize\ttfamily EIO\+\_\+\+API int EIO\+\_\+\+MONITOR\+\_\+\+DIRECTORY\+\_\+\+CLOSED\hspace{0.3cm}{\ttfamily [extern]}}



A directory has been closed in a watched directory. 

This event is never sent on Windows and OSX, or for non-\/fallback monitors \Hypertarget{group__Eio__Monitor_ga0f898552e7c6d88db2641599cccf6208}\label{group__Eio__Monitor_ga0f898552e7c6d88db2641599cccf6208} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!EIO\_MONITOR\_SELF\_RENAME@{EIO\_MONITOR\_SELF\_RENAME}}
\index{EIO\_MONITOR\_SELF\_RENAME@{EIO\_MONITOR\_SELF\_RENAME}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{EIO\_MONITOR\_SELF\_RENAME}{EIO\_MONITOR\_SELF\_RENAME}}
{\footnotesize\ttfamily EIO\+\_\+\+API int EIO\+\_\+\+MONITOR\+\_\+\+SELF\+\_\+\+RENAME\hspace{0.3cm}{\ttfamily [extern]}}



The monitored path has been renamed, an error could happen just after if the renamed path doesn\textquotesingle{}t exist. 

This event is never sent on OSX, or for non-\/fallback monitors \Hypertarget{group__Eio__Monitor_ga082de6c1272836fd22f9e369d602e3d5}\label{group__Eio__Monitor_ga082de6c1272836fd22f9e369d602e3d5} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!EIO\_MONITOR\_SELF\_DELETED@{EIO\_MONITOR\_SELF\_DELETED}}
\index{EIO\_MONITOR\_SELF\_DELETED@{EIO\_MONITOR\_SELF\_DELETED}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{EIO\_MONITOR\_SELF\_DELETED}{EIO\_MONITOR\_SELF\_DELETED}}
{\footnotesize\ttfamily EIO\+\_\+\+API int EIO\+\_\+\+MONITOR\+\_\+\+SELF\+\_\+\+DELETED\hspace{0.3cm}{\ttfamily [extern]}}



The monitored path has been removed. 

This event is never sent on OSX \Hypertarget{group__Eio__Monitor_ga5b3a30331491f0d05e3c7714350dfdf0}\label{group__Eio__Monitor_ga5b3a30331491f0d05e3c7714350dfdf0} 
\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}!EIO\_MONITOR\_ERROR@{EIO\_MONITOR\_ERROR}}
\index{EIO\_MONITOR\_ERROR@{EIO\_MONITOR\_ERROR}!Eio file and directory monitoring API@{Eio file and directory monitoring API}}
\doxysubsubsubsection{\texorpdfstring{EIO\_MONITOR\_ERROR}{EIO\_MONITOR\_ERROR}}
{\footnotesize\ttfamily EIO\+\_\+\+API int EIO\+\_\+\+MONITOR\+\_\+\+ERROR\hspace{0.3cm}{\ttfamily [extern]}}



During operation the monitor failed and will no longer work. 

eio\+\_\+monitor\+\_\+del must be called on it. 