\hypertarget{group__Eio__Xattr}{}\section{Eio manipulation of e\+Xtended attribute.}
\label{group__Eio__Xattr}\index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}


A set of function to manipulate data associated with a specific file.  


\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eio__List_ga1145f009745ecb4d9f6a01a9bc5a9ac0}{Eio\+\_\+\+File} $\ast$ \hyperlink{group__Eio__Xattr_ga17269e2198af5dfd8a1907654c214d4a}{eio\+\_\+file\+\_\+xattr} (const char $\ast$path, Eio\+\_\+\+Filter\+\_\+\+Cb filter\+\_\+cb, Eio\+\_\+\+Main\+\_\+\+Cb main\+\_\+cb, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Asynchronously list all e\+Xtended attribute. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eio__List_ga1145f009745ecb4d9f6a01a9bc5a9ac0}{Eio\+\_\+\+File} $\ast$ \hyperlink{group__Eio__Xattr_gaa7fc37c8b527c2f9cb7badeb66501f51}{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+set} (const char $\ast$path, const char $\ast$attribute, int xattr\+\_\+int, \hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags} flags, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Define an extented attribute on a file/directory. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eio__List_ga1145f009745ecb4d9f6a01a9bc5a9ac0}{Eio\+\_\+\+File} $\ast$ \hyperlink{group__Eio__Xattr_gaa0e820e027de0e982456d3a5ee3b79e8}{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+set} (const char $\ast$path, const char $\ast$attribute, double xattr\+\_\+double, \hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags} flags, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Define an extented attribute on a file/directory. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eio__List_ga1145f009745ecb4d9f6a01a9bc5a9ac0}{Eio\+\_\+\+File} $\ast$ \hyperlink{group__Eio__Xattr_ga56739a398e7495794a77c43401e961f2}{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+set} (const char $\ast$path, const char $\ast$attribute, const char $\ast$xattr\+\_\+string, \hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags} flags, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Define a string extented attribute on a file/directory. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eio__List_ga1145f009745ecb4d9f6a01a9bc5a9ac0}{Eio\+\_\+\+File} $\ast$ \hyperlink{group__Eio__Xattr_ga49f7c87d68b6f1f69641daed3953a61c}{eio\+\_\+file\+\_\+xattr\+\_\+set} (const char $\ast$path, const char $\ast$attribute, const char $\ast$xattr\+\_\+data, unsigned int xattr\+\_\+size, \hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags} flags, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Define an extented attribute on a file/directory. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eio__List_ga1145f009745ecb4d9f6a01a9bc5a9ac0}{Eio\+\_\+\+File} $\ast$ \hyperlink{group__Eio__Xattr_gab6423fbd9be2c1dc5b8fde56e870b8fd}{eio\+\_\+file\+\_\+xattr\+\_\+get} (const char $\ast$path, const char $\ast$attribute, Eio\+\_\+\+Done\+\_\+\+Data\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Retrieve the extended attribute of a file/directory. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eio__List_ga1145f009745ecb4d9f6a01a9bc5a9ac0}{Eio\+\_\+\+File} $\ast$ \hyperlink{group__Eio__Xattr_ga1a668a7cdcbd75c6ca6e3d05fbd6a6f3}{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+get} (const char $\ast$path, const char $\ast$attribute, Eio\+\_\+\+Done\+\_\+\+Int\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Retrieve a extended attribute of a file/directory. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eio__List_ga1145f009745ecb4d9f6a01a9bc5a9ac0}{Eio\+\_\+\+File} $\ast$ \hyperlink{group__Eio__Xattr_ga983331f0143b6cda32977f5d84a1a78d}{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+get} (const char $\ast$path, const char $\ast$attribute, Eio\+\_\+\+Done\+\_\+\+Double\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Retrieve a extended attribute of a file/directory. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eio__List_ga1145f009745ecb4d9f6a01a9bc5a9ac0}{Eio\+\_\+\+File} $\ast$ \hyperlink{group__Eio__Xattr_gab1ef0f75f1b80dde1d9a1699d2f199e0}{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+get} (const char $\ast$path, const char $\ast$attribute, Eio\+\_\+\+Done\+\_\+\+String\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Retrieve a string extended attribute of a file/directory. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
A set of function to manipulate data associated with a specific file. 

The functions provided by this A\+PI are responsible to manage Extended attribute files. Like file authors, character encoding, checksum, etc. 

\subsection{Function Documentation}
\index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}!eio\+\_\+file\+\_\+xattr@{eio\+\_\+file\+\_\+xattr}}
\index{eio\+\_\+file\+\_\+xattr@{eio\+\_\+file\+\_\+xattr}!Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}
\subsubsection[{\texorpdfstring{eio\+\_\+file\+\_\+xattr(const char $\ast$path, Eio\+\_\+\+Filter\+\_\+\+Cb filter\+\_\+cb, Eio\+\_\+\+Main\+\_\+\+Cb main\+\_\+cb, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)}{eio_file_xattr(const char *path, Eio_Filter_Cb filter_cb, Eio_Main_Cb main_cb, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+PI} {\bf Eio\+\_\+\+File}$\ast$ eio\+\_\+file\+\_\+xattr (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{Eio\+\_\+\+Filter\+\_\+\+Cb}]{filter\+\_\+cb, }
\item[{Eio\+\_\+\+Main\+\_\+\+Cb}]{main\+\_\+cb, }
\item[{Eio\+\_\+\+Done\+\_\+\+Cb}]{done\+\_\+cb, }
\item[{Eio\+\_\+\+Error\+\_\+\+Cb}]{error\+\_\+cb, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eio__Xattr_ga17269e2198af5dfd8a1907654c214d4a}{}\label{group__Eio__Xattr_ga17269e2198af5dfd8a1907654c214d4a}


Asynchronously list all e\+Xtended attribute. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to get the e\+Xtended attribute from. \\
\hline
{\em filter\+\_\+cb} & Callback called in the thread to validate the e\+Xtended attribute. \\
\hline
{\em main\+\_\+cb} & Callback called in the main loop for each accepted e\+Xtended attribute. \\
\hline
{\em done\+\_\+cb} & Callback called in the main loop when the all the e\+Xtended attribute have been listed. \\
\hline
{\em error\+\_\+cb} & Callback called in the main loop when something goes wrong during the listing of the e\+Xtended attribute. \\
\hline
{\em data} & Unmodified user data passed to callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the I/O operation. 
\end{DoxyReturn}


References eina\+\_\+stringshare\+\_\+add().

\index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}!eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+set@{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+set}}
\index{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+set@{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+set}!Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}
\subsubsection[{\texorpdfstring{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+set(const char $\ast$path, const char $\ast$attribute, int xattr\+\_\+int, Eina\+\_\+\+Xattr\+\_\+\+Flags flags, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)}{eio_file_xattr_int_set(const char *path, const char *attribute, int xattr_int, Eina_Xattr_Flags flags, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+PI} {\bf Eio\+\_\+\+File}$\ast$ eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+set (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{const char $\ast$}]{attribute, }
\item[{int}]{xattr\+\_\+int, }
\item[{{\bf Eina\+\_\+\+Xattr\+\_\+\+Flags}}]{flags, }
\item[{Eio\+\_\+\+Done\+\_\+\+Cb}]{done\+\_\+cb, }
\item[{Eio\+\_\+\+Error\+\_\+\+Cb}]{error\+\_\+cb, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eio__Xattr_gaa7fc37c8b527c2f9cb7badeb66501f51}{}\label{group__Eio__Xattr_gaa7fc37c8b527c2f9cb7badeb66501f51}


Define an extented attribute on a file/directory. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to set the attribute on. \\
\hline
{\em attribute} & The name of the attribute to define. \\
\hline
{\em xattr\+\_\+int} & The value to link the attribute with. \\
\hline
{\em flags} & Whether to insert, replace or create the attribute. \\
\hline
{\em done\+\_\+cb} & The callback called from the main loop when setxattr succeeded. \\
\hline
{\em error\+\_\+cb} & The callback called from the main loop when setxattr failed. \\
\hline
{\em data} & Unmodified user data passed to callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the I/O operation.
\end{DoxyReturn}
eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+set calls eina\+\_\+xattr\+\_\+int\+\_\+set from another thread. This prevents blocking in your apps. If the writing succeeded, the done\+\_\+cb will be called even if a cancel was requested, but came too late. \index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}!eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+set@{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+set}}
\index{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+set@{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+set}!Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}
\subsubsection[{\texorpdfstring{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+set(const char $\ast$path, const char $\ast$attribute, double xattr\+\_\+double, Eina\+\_\+\+Xattr\+\_\+\+Flags flags, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)}{eio_file_xattr_double_set(const char *path, const char *attribute, double xattr_double, Eina_Xattr_Flags flags, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+PI} {\bf Eio\+\_\+\+File}$\ast$ eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+set (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{const char $\ast$}]{attribute, }
\item[{double}]{xattr\+\_\+double, }
\item[{{\bf Eina\+\_\+\+Xattr\+\_\+\+Flags}}]{flags, }
\item[{Eio\+\_\+\+Done\+\_\+\+Cb}]{done\+\_\+cb, }
\item[{Eio\+\_\+\+Error\+\_\+\+Cb}]{error\+\_\+cb, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eio__Xattr_gaa0e820e027de0e982456d3a5ee3b79e8}{}\label{group__Eio__Xattr_gaa0e820e027de0e982456d3a5ee3b79e8}


Define an extented attribute on a file/directory. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to set the attribute on. \\
\hline
{\em attribute} & The name of the attribute to define. \\
\hline
{\em xattr\+\_\+double} & The value to link the attribute with. \\
\hline
{\em flags} & Whether to insert, replace or create the attribute. \\
\hline
{\em done\+\_\+cb} & The callback called from the main loop when setxattr succeeded. \\
\hline
{\em error\+\_\+cb} & The callback called from the main loop when setxattr failed. \\
\hline
{\em data} & Unmodified user data passed to callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the I/O operation.
\end{DoxyReturn}
eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+set calls eina\+\_\+xattr\+\_\+double\+\_\+set from another thread. This prevents blocking in your apps. If the writing succeeded, the done\+\_\+cb will be called even if a cancel was requested, but came too late. 

Referenced by emotion\+\_\+object\+\_\+last\+\_\+position\+\_\+save().

\index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}!eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+set@{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+set}}
\index{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+set@{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+set}!Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}
\subsubsection[{\texorpdfstring{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+set(const char $\ast$path, const char $\ast$attribute, const char $\ast$xattr\+\_\+string, Eina\+\_\+\+Xattr\+\_\+\+Flags flags, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)}{eio_file_xattr_string_set(const char *path, const char *attribute, const char *xattr_string, Eina_Xattr_Flags flags, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+PI} {\bf Eio\+\_\+\+File}$\ast$ eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+set (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{const char $\ast$}]{attribute, }
\item[{const char $\ast$}]{xattr\+\_\+string, }
\item[{{\bf Eina\+\_\+\+Xattr\+\_\+\+Flags}}]{flags, }
\item[{Eio\+\_\+\+Done\+\_\+\+Cb}]{done\+\_\+cb, }
\item[{Eio\+\_\+\+Error\+\_\+\+Cb}]{error\+\_\+cb, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eio__Xattr_ga56739a398e7495794a77c43401e961f2}{}\label{group__Eio__Xattr_ga56739a398e7495794a77c43401e961f2}


Define a string extented attribute on a file/directory. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to set the attribute on. \\
\hline
{\em attribute} & The name of the attribute to define. \\
\hline
{\em xattr\+\_\+string} & The string to link the attribute with. \\
\hline
{\em flags} & Whether to insert, replace or create the attribute. \\
\hline
{\em done\+\_\+cb} & The callback called from the main loop when setxattr succeeded. \\
\hline
{\em error\+\_\+cb} & The callback called from the main loop when setxattr failed. \\
\hline
{\em data} & Unmodified user data passed to callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the I/O operation.
\end{DoxyReturn}
eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+set calls eina\+\_\+xattr\+\_\+string\+\_\+set from another thread. This prevents blocking in your apps. If the writing succeeded, the done\+\_\+cb will be called even if a cancel was requested, but came too late. \index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}!eio\+\_\+file\+\_\+xattr\+\_\+set@{eio\+\_\+file\+\_\+xattr\+\_\+set}}
\index{eio\+\_\+file\+\_\+xattr\+\_\+set@{eio\+\_\+file\+\_\+xattr\+\_\+set}!Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}
\subsubsection[{\texorpdfstring{eio\+\_\+file\+\_\+xattr\+\_\+set(const char $\ast$path, const char $\ast$attribute, const char $\ast$xattr\+\_\+data, unsigned int xattr\+\_\+size, Eina\+\_\+\+Xattr\+\_\+\+Flags flags, Eio\+\_\+\+Done\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)}{eio_file_xattr_set(const char *path, const char *attribute, const char *xattr_data, unsigned int xattr_size, Eina_Xattr_Flags flags, Eio_Done_Cb done_cb, Eio_Error_Cb error_cb, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+PI} {\bf Eio\+\_\+\+File}$\ast$ eio\+\_\+file\+\_\+xattr\+\_\+set (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{const char $\ast$}]{attribute, }
\item[{const char $\ast$}]{xattr\+\_\+data, }
\item[{unsigned int}]{xattr\+\_\+size, }
\item[{{\bf Eina\+\_\+\+Xattr\+\_\+\+Flags}}]{flags, }
\item[{Eio\+\_\+\+Done\+\_\+\+Cb}]{done\+\_\+cb, }
\item[{Eio\+\_\+\+Error\+\_\+\+Cb}]{error\+\_\+cb, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eio__Xattr_ga49f7c87d68b6f1f69641daed3953a61c}{}\label{group__Eio__Xattr_ga49f7c87d68b6f1f69641daed3953a61c}


Define an extented attribute on a file/directory. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to set the attribute on. \\
\hline
{\em attribute} & The name of the attribute to define. \\
\hline
{\em xattr\+\_\+data} & The data to link the attribute with. \\
\hline
{\em xattr\+\_\+size} & The size of the data to set. \\
\hline
{\em flags} & Whether to insert, replace or create the attribute. \\
\hline
{\em done\+\_\+cb} & The callback called from the main loop when setxattr succeeded. \\
\hline
{\em error\+\_\+cb} & The callback called from the main loop when setxattr failed. \\
\hline
{\em data} & Unmodified user data passed to callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the I/O operation.
\end{DoxyReturn}
eio\+\_\+file\+\_\+xattr\+\_\+set calls setxattr from another thread. This prevents blocking in your apps. If the writing succeeded, the done\+\_\+cb will be called even if a cancel was requested, but came too late. \index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}!eio\+\_\+file\+\_\+xattr\+\_\+get@{eio\+\_\+file\+\_\+xattr\+\_\+get}}
\index{eio\+\_\+file\+\_\+xattr\+\_\+get@{eio\+\_\+file\+\_\+xattr\+\_\+get}!Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}
\subsubsection[{\texorpdfstring{eio\+\_\+file\+\_\+xattr\+\_\+get(const char $\ast$path, const char $\ast$attribute, Eio\+\_\+\+Done\+\_\+\+Data\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)}{eio_file_xattr_get(const char *path, const char *attribute, Eio_Done_Data_Cb done_cb, Eio_Error_Cb error_cb, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+PI} {\bf Eio\+\_\+\+File}$\ast$ eio\+\_\+file\+\_\+xattr\+\_\+get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{const char $\ast$}]{attribute, }
\item[{Eio\+\_\+\+Done\+\_\+\+Data\+\_\+\+Cb}]{done\+\_\+cb, }
\item[{Eio\+\_\+\+Error\+\_\+\+Cb}]{error\+\_\+cb, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eio__Xattr_gab6423fbd9be2c1dc5b8fde56e870b8fd}{}\label{group__Eio__Xattr_gab6423fbd9be2c1dc5b8fde56e870b8fd}


Retrieve the extended attribute of a file/directory. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to retrieve the extended attribute from. \\
\hline
{\em attribute} & The name of the attribute to retrieve. \\
\hline
{\em done\+\_\+cb} & Callback called from the main loop when getxattr succeeded. \\
\hline
{\em error\+\_\+cb} & Callback called from the main loop when getxattr failed or has been canceled. \\
\hline
{\em data} & Unmodified user data passed to callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the I/O operation.
\end{DoxyReturn}
eio\+\_\+file\+\_\+xattr\+\_\+get calls getxattr from another thread. This prevents blocking in your apps. \index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}!eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+get@{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+get}}
\index{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+get@{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+get}!Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}
\subsubsection[{\texorpdfstring{eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+get(const char $\ast$path, const char $\ast$attribute, Eio\+\_\+\+Done\+\_\+\+Int\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)}{eio_file_xattr_int_get(const char *path, const char *attribute, Eio_Done_Int_Cb done_cb, Eio_Error_Cb error_cb, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+PI} {\bf Eio\+\_\+\+File}$\ast$ eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{const char $\ast$}]{attribute, }
\item[{Eio\+\_\+\+Done\+\_\+\+Int\+\_\+\+Cb}]{done\+\_\+cb, }
\item[{Eio\+\_\+\+Error\+\_\+\+Cb}]{error\+\_\+cb, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eio__Xattr_ga1a668a7cdcbd75c6ca6e3d05fbd6a6f3}{}\label{group__Eio__Xattr_ga1a668a7cdcbd75c6ca6e3d05fbd6a6f3}


Retrieve a extended attribute of a file/directory. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to retrieve the extended attribute from. \\
\hline
{\em attribute} & The name of the attribute to retrieve. \\
\hline
{\em done\+\_\+cb} & Callback called from the main loop when getxattr succeeded. \\
\hline
{\em error\+\_\+cb} & Callback called from the main loop when getxattr failed or has been canceled. \\
\hline
{\em data} & Unmodified user data passed to callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the I/O operation.
\end{DoxyReturn}
eio\+\_\+file\+\_\+xattr\+\_\+int\+\_\+get calls eina\+\_\+xattr\+\_\+int\+\_\+get from another thread. This prevents blocking in your apps. \index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}!eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+get@{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+get}}
\index{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+get@{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+get}!Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}
\subsubsection[{\texorpdfstring{eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+get(const char $\ast$path, const char $\ast$attribute, Eio\+\_\+\+Done\+\_\+\+Double\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)}{eio_file_xattr_double_get(const char *path, const char *attribute, Eio_Done_Double_Cb done_cb, Eio_Error_Cb error_cb, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+PI} {\bf Eio\+\_\+\+File}$\ast$ eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{const char $\ast$}]{attribute, }
\item[{Eio\+\_\+\+Done\+\_\+\+Double\+\_\+\+Cb}]{done\+\_\+cb, }
\item[{Eio\+\_\+\+Error\+\_\+\+Cb}]{error\+\_\+cb, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eio__Xattr_ga983331f0143b6cda32977f5d84a1a78d}{}\label{group__Eio__Xattr_ga983331f0143b6cda32977f5d84a1a78d}


Retrieve a extended attribute of a file/directory. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to retrieve the extended attribute from. \\
\hline
{\em attribute} & The name of the attribute to retrieve. \\
\hline
{\em done\+\_\+cb} & Callback called from the main loop when getxattr succeeded. \\
\hline
{\em error\+\_\+cb} & Callback called from the main loop when getxattr failed or has been canceled. \\
\hline
{\em data} & Unmodified user data passed to callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the I/O operation.
\end{DoxyReturn}
eio\+\_\+file\+\_\+xattr\+\_\+double\+\_\+get calls eina\+\_\+xattr\+\_\+double\+\_\+get from another thread. This prevents blocking in your apps. 

Referenced by emotion\+\_\+object\+\_\+last\+\_\+position\+\_\+load().

\index{Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}!eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+get@{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+get}}
\index{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+get@{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+get}!Eio manipulation of e\+Xtended attribute.@{Eio manipulation of e\+Xtended attribute.}}
\subsubsection[{\texorpdfstring{eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+get(const char $\ast$path, const char $\ast$attribute, Eio\+\_\+\+Done\+\_\+\+String\+\_\+\+Cb done\+\_\+cb, Eio\+\_\+\+Error\+\_\+\+Cb error\+\_\+cb, const void $\ast$data)}{eio_file_xattr_string_get(const char *path, const char *attribute, Eio_Done_String_Cb done_cb, Eio_Error_Cb error_cb, const void *data)}}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+PI} {\bf Eio\+\_\+\+File}$\ast$ eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+get (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{path, }
\item[{const char $\ast$}]{attribute, }
\item[{Eio\+\_\+\+Done\+\_\+\+String\+\_\+\+Cb}]{done\+\_\+cb, }
\item[{Eio\+\_\+\+Error\+\_\+\+Cb}]{error\+\_\+cb, }
\item[{const void $\ast$}]{data}
\end{DoxyParamCaption}
)}\hypertarget{group__Eio__Xattr_gab1ef0f75f1b80dde1d9a1699d2f199e0}{}\label{group__Eio__Xattr_gab1ef0f75f1b80dde1d9a1699d2f199e0}


Retrieve a string extended attribute of a file/directory. 


\begin{DoxyParams}{Parameters}
{\em path} & The path to retrieve the extended attribute from. \\
\hline
{\em attribute} & The name of the attribute to retrieve. \\
\hline
{\em done\+\_\+cb} & Callback called from the main loop when getxattr succeeded. \\
\hline
{\em error\+\_\+cb} & Callback called from the main loop when getxattr failed or has been canceled. \\
\hline
{\em data} & Unmodified user data passed to callbacks \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A reference to the I/O operation.
\end{DoxyReturn}
eio\+\_\+file\+\_\+xattr\+\_\+string\+\_\+get calls eina\+\_\+xattr\+\_\+string\+\_\+get from another thread. This prevents blocking in your apps. 