\hypertarget{group__Eio__Monitor}{}\doxysection{Eio file and directory monitoring A\+PI}
\label{group__Eio__Monitor}\index{Eio file and directory monitoring API@{Eio file and directory monitoring API}}


These function monitor changes in directories and files.  


\doxysubsection*{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}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eio__Monitor_ga88e01b740cbbc59d3b8456fa022456c9}\label{group__Eio__Monitor_ga88e01b740cbbc59d3b8456fa022456c9}} 
typedef struct \+\_\+\+Eio\+\_\+\+Monitor {\bfseries Eio\+\_\+\+Monitor}
\item 
\mbox{\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 
\mbox{\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}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
Eio\+\_\+\+Monitor $\ast$ \mbox{\hyperlink{group__Eio__Monitor_ga3acbc014c793f051c39a2216a0481757}{eio\+\_\+monitor\+\_\+add}} (const char $\ast$path)
\begin{DoxyCompactList}\small\item\em Adds a file/directory to monitor (inotify mechanism) \end{DoxyCompactList}\item 
Eio\+\_\+\+Monitor $\ast$ \mbox{\hyperlink{group__Eio__Monitor_ga20ca8e21e13a119e0359e227d7cb2249}{eio\+\_\+monitor\+\_\+stringshared\+\_\+add}} (const char $\ast$path)
\begin{DoxyCompactList}\small\item\em Adds a file/directory to monitor. \end{DoxyCompactList}\item 
void \mbox{\hyperlink{group__Eio__Monitor_gac143993ba6cb830098550961c38dbb81}{eio\+\_\+monitor\+\_\+del}} (Eio\+\_\+\+Monitor $\ast$monitor)
\begin{DoxyCompactList}\small\item\em Deletes a path from the “watched” list. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__Eio__Monitor_ga4d986a80e062e82c685f3b4eac8abb0f}{eio\+\_\+monitor\+\_\+path\+\_\+get}} (Eio\+\_\+\+Monitor $\ast$monitor)
\begin{DoxyCompactList}\small\item\em returns the path being watched by the given Eio\+\_\+\+Monitor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eio__Monitor_ga4b6044456ed4bd024fe0c37050db06c8}{eio\+\_\+monitor\+\_\+fallback\+\_\+check}} (const Eio\+\_\+\+Monitor $\ast$monitor)
\begin{DoxyCompactList}\small\item\em Check whether a monitor is using the fallback backend. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eio__Monitor_ga85d2246a621b54e86a346dc3717e55f2}{eio\+\_\+monitor\+\_\+has\+\_\+context}} (const Eio\+\_\+\+Monitor $\ast$monitor, const char $\ast$path)
\begin{DoxyCompactList}\small\item\em Check if a monitor has the context about a file or not. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eio__Monitor_ga93ca339388870305d6a1e35aa35f0fc5}\label{group__Eio__Monitor_ga93ca339388870305d6a1e35aa35f0fc5}} 
int \mbox{\hyperlink{group__Eio__Monitor_ga93ca339388870305d6a1e35aa35f0fc5}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+F\+I\+L\+E\+\_\+\+C\+R\+E\+A\+T\+ED}}
\begin{DoxyCompactList}\small\item\em A new file was created in a watched directory. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eio__Monitor_gac41279fb25e0995a99327a2eaac9e672}\label{group__Eio__Monitor_gac41279fb25e0995a99327a2eaac9e672}} 
int \mbox{\hyperlink{group__Eio__Monitor_gac41279fb25e0995a99327a2eaac9e672}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+F\+I\+L\+E\+\_\+\+D\+E\+L\+E\+T\+ED}}
\begin{DoxyCompactList}\small\item\em A watched file was deleted, or a file in a watched directory was deleted. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eio__Monitor_gafdc00b88fb71d255c1244643bf238f78}\label{group__Eio__Monitor_gafdc00b88fb71d255c1244643bf238f78}} 
int \mbox{\hyperlink{group__Eio__Monitor_gafdc00b88fb71d255c1244643bf238f78}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+F\+I\+L\+E\+\_\+\+M\+O\+D\+I\+F\+I\+ED}}
\begin{DoxyCompactList}\small\item\em A file was modified in a watched directory. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Eio__Monitor_ga6883e9d26906ab7f8dd7af582c93100d}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+F\+I\+L\+E\+\_\+\+C\+L\+O\+S\+ED}}
\begin{DoxyCompactList}\small\item\em A file was closed in a watched directory. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eio__Monitor_gab0bec26c342c93f009e66430601cebfa}\label{group__Eio__Monitor_gab0bec26c342c93f009e66430601cebfa}} 
int \mbox{\hyperlink{group__Eio__Monitor_gab0bec26c342c93f009e66430601cebfa}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y\+\_\+\+C\+R\+E\+A\+T\+ED}}
\begin{DoxyCompactList}\small\item\em A new directory was created in a watched directory. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eio__Monitor_gab63fc52bd5e7c638dd45340cb1f87f27}\label{group__Eio__Monitor_gab63fc52bd5e7c638dd45340cb1f87f27}} 
int \mbox{\hyperlink{group__Eio__Monitor_gab63fc52bd5e7c638dd45340cb1f87f27}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y\+\_\+\+D\+E\+L\+E\+T\+ED}}
\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 
\mbox{\Hypertarget{group__Eio__Monitor_ga26ed0b188e69ffd38ff00b2c696ffa75}\label{group__Eio__Monitor_ga26ed0b188e69ffd38ff00b2c696ffa75}} 
int \mbox{\hyperlink{group__Eio__Monitor_ga26ed0b188e69ffd38ff00b2c696ffa75}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y\+\_\+\+M\+O\+D\+I\+F\+I\+ED}}
\begin{DoxyCompactList}\small\item\em A directory has been modified in a watched directory. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Eio__Monitor_ga61ffeb02418656b5888563425881c9c3}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y\+\_\+\+C\+L\+O\+S\+ED}}
\begin{DoxyCompactList}\small\item\em A directory has been closed in a watched directory. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Eio__Monitor_gacfec4e7ed521e04030e198667a1d3d92}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+S\+E\+L\+F\+\_\+\+R\+E\+N\+A\+ME}}
\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 
int \mbox{\hyperlink{group__Eio__Monitor_ga2b6c952c0fbd601a59caf7bff350c992}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+S\+E\+L\+F\+\_\+\+D\+E\+L\+E\+T\+ED}}
\begin{DoxyCompactList}\small\item\em The monitored path has been removed. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{group__Eio__Monitor_gab1fcb7bd226b288352b2482d4e0c655c}{E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+E\+R\+R\+OR}}
\begin{DoxyCompactList}\small\item\em During operation the monitor failed and will no longer work. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{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. 

\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Eio__Monitor_ga3acbc014c793f051c39a2216a0481757}\label{group__Eio__Monitor_ga3acbc014c793f051c39a2216a0481757}} 
\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}}
\doxysubsubsection{\texorpdfstring{eio\_monitor\_add()}{eio\_monitor\_add()}}
{\footnotesize\ttfamily Eio\+\_\+\+Monitor$\ast$ eio\+\_\+monitor\+\_\+add (\begin{DoxyParamCaption}\item[{const char $\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}
N\+U\+LL 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 E\+I\+N\+A\+\_\+\+S\+A\+F\+E\+T\+Y\+\_\+\+O\+N\+\_\+\+N\+U\+L\+L\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL, eina\+\_\+stringshare\+\_\+add(), eina\+\_\+stringshare\+\_\+del(), and eio\+\_\+monitor\+\_\+stringshared\+\_\+add().

\mbox{\Hypertarget{group__Eio__Monitor_ga20ca8e21e13a119e0359e227d7cb2249}\label{group__Eio__Monitor_ga20ca8e21e13a119e0359e227d7cb2249}} 
\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}}
\doxysubsubsection{\texorpdfstring{eio\_monitor\_stringshared\_add()}{eio\_monitor\_stringshared\_add()}}
{\footnotesize\ttfamily Eio\+\_\+\+Monitor$\ast$ eio\+\_\+monitor\+\_\+stringshared\+\_\+add (\begin{DoxyParamCaption}\item[{const char $\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}
N\+U\+LL in case of a failure or a pointer to the monitor in case of success. 
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
Do N\+OT pass non-\/stringshared strings to this function! If you don\textquotesingle{}t know what this means, use \mbox{\hyperlink{group__Eio__Monitor_ga3acbc014c793f051c39a2216a0481757}{eio\+\_\+monitor\+\_\+add()}}.
\end{DoxyWarning}
This function is just like \mbox{\hyperlink{group__Eio__Monitor_ga3acbc014c793f051c39a2216a0481757}{eio\+\_\+monitor\+\_\+add()}}, however the string passed by argument must be created using \mbox{\hyperlink{group__Eina__Stringshare__Group_ga5293082680141132ffcacc28866ef0ef}{eina\+\_\+stringshare\+\_\+add()}}. 

References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, eina\+\_\+hash\+\_\+del(), eina\+\_\+hash\+\_\+direct\+\_\+add(), eina\+\_\+hash\+\_\+find(), E\+I\+N\+A\+\_\+\+R\+E\+F\+C\+O\+U\+N\+T\+\_\+\+I\+N\+IT, E\+I\+N\+A\+\_\+\+R\+E\+F\+C\+O\+U\+N\+T\+\_\+\+R\+EF, E\+I\+N\+A\+\_\+\+S\+A\+F\+E\+T\+Y\+\_\+\+O\+N\+\_\+\+N\+U\+L\+L\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL, eina\+\_\+stringshare\+\_\+del(), eina\+\_\+stringshare\+\_\+ref(), E\+I\+N\+A\+\_\+\+T\+R\+UE, E\+RR, I\+NF, and W\+RN.



Referenced by eio\+\_\+monitor\+\_\+add().

\mbox{\Hypertarget{group__Eio__Monitor_gac143993ba6cb830098550961c38dbb81}\label{group__Eio__Monitor_gac143993ba6cb830098550961c38dbb81}} 
\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}}
\doxysubsubsection{\texorpdfstring{eio\_monitor\_del()}{eio\_monitor\_del()}}
{\footnotesize\ttfamily void eio\+\_\+monitor\+\_\+del (\begin{DoxyParamCaption}\item[{Eio\+\_\+\+Monitor $\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 \mbox{\hyperlink{group__Eio__Monitor_ga3acbc014c793f051c39a2216a0481757}{eio\+\_\+monitor\+\_\+add()}} or \mbox{\hyperlink{group__Eio__Monitor_ga20ca8e21e13a119e0359e227d7cb2249}{eio\+\_\+monitor\+\_\+stringshared\+\_\+add()}} \\
\hline
\end{DoxyParams}


References E\+I\+N\+A\+\_\+\+R\+E\+F\+C\+O\+U\+N\+T\+\_\+\+U\+N\+R\+EF.

\mbox{\Hypertarget{group__Eio__Monitor_ga4d986a80e062e82c685f3b4eac8abb0f}\label{group__Eio__Monitor_ga4d986a80e062e82c685f3b4eac8abb0f}} 
\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}}
\doxysubsubsection{\texorpdfstring{eio\_monitor\_path\_get()}{eio\_monitor\_path\_get()}}
{\footnotesize\ttfamily const char$\ast$ eio\+\_\+monitor\+\_\+path\+\_\+get (\begin{DoxyParamCaption}\item[{Eio\+\_\+\+Monitor $\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 E\+I\+N\+A\+\_\+\+S\+A\+F\+E\+T\+Y\+\_\+\+O\+N\+\_\+\+N\+U\+L\+L\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL.

\mbox{\Hypertarget{group__Eio__Monitor_ga4b6044456ed4bd024fe0c37050db06c8}\label{group__Eio__Monitor_ga4b6044456ed4bd024fe0c37050db06c8}} 
\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}}
\doxysubsubsection{\texorpdfstring{eio\_monitor\_fallback\_check()}{eio\_monitor\_fallback\_check()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eio\+\_\+monitor\+\_\+fallback\+\_\+check (\begin{DoxyParamCaption}\item[{const Eio\+\_\+\+Monitor $\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}
E\+I\+N\+A\+\_\+\+T\+R\+UE only if the monitor is valid and is using the fallback monitoring mechanism
\end{DoxyReturn}
Fallback monitors are unable to provide the C\+L\+O\+S\+ED or R\+E\+N\+A\+ME events. It\textquotesingle{}s important to check whether a monitor is a fallback monitor before relying on these events.

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


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, and E\+I\+N\+A\+\_\+\+S\+A\+F\+E\+T\+Y\+\_\+\+O\+N\+\_\+\+N\+U\+L\+L\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL.

\mbox{\Hypertarget{group__Eio__Monitor_ga85d2246a621b54e86a346dc3717e55f2}\label{group__Eio__Monitor_ga85d2246a621b54e86a346dc3717e55f2}} 
\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}}
\doxysubsubsection{\texorpdfstring{eio\_monitor\_has\_context()}{eio\_monitor\_has\_context()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eio\+\_\+monitor\+\_\+has\+\_\+context (\begin{DoxyParamCaption}\item[{const Eio\+\_\+\+Monitor $\ast$}]{monitor,  }\item[{const char $\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}
E\+I\+N\+A\+\_\+\+T\+R\+UE if there is context, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE 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 A\+PI 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 D\+E\+L\+E\+TE 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 F\+I\+L\+E\+\_\+\+A\+DD event about that file.

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


\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{group__Eio__Monitor_ga6883e9d26906ab7f8dd7af582c93100d}\label{group__Eio__Monitor_ga6883e9d26906ab7f8dd7af582c93100d}} 
\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}}
\doxysubsubsection{\texorpdfstring{EIO\_MONITOR\_FILE\_CLOSED}{EIO\_MONITOR\_FILE\_CLOSED}}
{\footnotesize\ttfamily int E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+F\+I\+L\+E\+\_\+\+C\+L\+O\+S\+ED}



A file was closed in a watched directory. 

This event is never sent on Windows and O\+SX, or for non-\/fallback monitors \mbox{\Hypertarget{group__Eio__Monitor_ga61ffeb02418656b5888563425881c9c3}\label{group__Eio__Monitor_ga61ffeb02418656b5888563425881c9c3}} 
\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}}
\doxysubsubsection{\texorpdfstring{EIO\_MONITOR\_DIRECTORY\_CLOSED}{EIO\_MONITOR\_DIRECTORY\_CLOSED}}
{\footnotesize\ttfamily int E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+D\+I\+R\+E\+C\+T\+O\+R\+Y\+\_\+\+C\+L\+O\+S\+ED}



A directory has been closed in a watched directory. 

This event is never sent on Windows and O\+SX, or for non-\/fallback monitors \mbox{\Hypertarget{group__Eio__Monitor_gacfec4e7ed521e04030e198667a1d3d92}\label{group__Eio__Monitor_gacfec4e7ed521e04030e198667a1d3d92}} 
\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}}
\doxysubsubsection{\texorpdfstring{EIO\_MONITOR\_SELF\_RENAME}{EIO\_MONITOR\_SELF\_RENAME}}
{\footnotesize\ttfamily int E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+S\+E\+L\+F\+\_\+\+R\+E\+N\+A\+ME}



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 O\+SX, or for non-\/fallback monitors \mbox{\Hypertarget{group__Eio__Monitor_ga2b6c952c0fbd601a59caf7bff350c992}\label{group__Eio__Monitor_ga2b6c952c0fbd601a59caf7bff350c992}} 
\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}}
\doxysubsubsection{\texorpdfstring{EIO\_MONITOR\_SELF\_DELETED}{EIO\_MONITOR\_SELF\_DELETED}}
{\footnotesize\ttfamily int E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+S\+E\+L\+F\+\_\+\+D\+E\+L\+E\+T\+ED}



The monitored path has been removed. 

This event is never sent on O\+SX \mbox{\Hypertarget{group__Eio__Monitor_gab1fcb7bd226b288352b2482d4e0c655c}\label{group__Eio__Monitor_gab1fcb7bd226b288352b2482d4e0c655c}} 
\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}}
\doxysubsubsection{\texorpdfstring{EIO\_MONITOR\_ERROR}{EIO\_MONITOR\_ERROR}}
{\footnotesize\ttfamily int E\+I\+O\+\_\+\+M\+O\+N\+I\+T\+O\+R\+\_\+\+E\+R\+R\+OR}



During operation the monitor failed and will no longer work. 

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