\hypertarget{group__Eina__Tools__Group}{}\doxysection{Tools}
\label{group__Eina__Tools__Group}\index{Tools@{Tools}}


Eina tools aims to help application development, providing ways to make it safer, log errors, manage memory more efficiently and more.  


\doxysubsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eina__Benchmark__Group}{Benchmark}}
\item 
\mbox{\hyperlink{group__Eina__Convert__Group}{Convert}}
\item 
\mbox{\hyperlink{group__Eina__Counter__Group}{Counter}}
\begin{DoxyCompactList}\small\item\em This group discusses the functions that allow you to get the time spent in a part of a code. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Cow__Group}{Copy On Write}}
\begin{DoxyCompactList}\small\item\em These functions provide some helper for a pseudo Copy-\/\+On-\/\+Write mechanism. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Cpu__Group}{Cpu}}
\begin{DoxyCompactList}\small\item\em Cpu and architecture related helpers. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Error__Group}{Error}}
\begin{DoxyCompactList}\small\item\em This group discusses the functions that provide error management for projects. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__File__Group}{File}}
\begin{DoxyCompactList}\small\item\em This group discusses the functions to handle files and directories. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Lalloc__Group}{Lazy allocator}}
\item 
\mbox{\hyperlink{group__Eina__Lock__Group}{Lock}}
\begin{DoxyCompactList}\small\item\em This group provides thread locking and synchronization capabilities. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Log__Group}{Log}}
\begin{DoxyCompactList}\small\item\em Full-\/featured logging system. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Magic__Group}{Magic}}
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{group__Eina__Magic__Group_ga979d40af6182a8ec32890ba85df88f1d}{Eina\+\_\+\+Magic}} provides run-\/time type-\/checking. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Memory__Pool__Group}{Memory Pool}}
\begin{DoxyCompactList}\small\item\em This group discusses the functions that provide memory pool management. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Module__Group}{Module}}
\begin{DoxyCompactList}\small\item\em These macros allow you to define module informations like author/description/version/license. eina\+\_\+modinfo -\/ shows information about an eina module. eina\+\_\+modinfo pulls out information from the eina modules given on command line. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Prefix__Group}{Prefix}}
\begin{DoxyCompactList}\small\item\em This group discusses the functions that provide the ability to determine the runtime location of a software package. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Rectangle__Group}{Rectangle}}
\begin{DoxyCompactList}\small\item\em These functions provide rectangle management. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Safety__Checks__Group}{Safety Checks}}
\item 
\mbox{\hyperlink{group__Schedule}{Schedule}}
\item 
\mbox{\hyperlink{group__Eina__Simple__XML__Group}{Simple\+\_\+\+X\+ML}}
\begin{DoxyCompactList}\small\item\em Simplistic relaxed S\+A\+X-\/like X\+ML parser. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__String__Group}{String}}
\begin{DoxyCompactList}\small\item\em Provides useful functions for C string manipulation. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Thread__Group}{Thread}}
\begin{DoxyCompactList}\small\item\em Abstracts platform threads, providing a uniform A\+PI. It\textquotesingle{}s modeled after P\+O\+S\+IX T\+H\+R\+E\+A\+DS (pthreads), on Linux they are almost 1\+:1 mapping. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Eina__Xattr}{\+\_\+\+Eina\+\_\+\+Xattr}}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group__Eina__Tools__Group_ga67d74b61939da29afc78e0100a2bb534}{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+EQ}}(a,  b)~(!!(fabsf((float)(a) -\/ (float)(b)) $<$= F\+L\+T\+\_\+\+E\+P\+S\+I\+L\+ON))
\begin{DoxyCompactList}\small\item\em Safe comparison of float. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Tools__Group_gad4eb3fc9655b9ceb274dd8b0a7baa5d7}{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+N\+O\+N\+Z\+E\+RO}}(a)~(!!(fpclassify((float)(a)) != F\+P\+\_\+\+Z\+E\+RO))
\begin{DoxyCompactList}\small\item\em Determines if a float is not zero. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Tools__Group_ga6bee37244b675b83d6a4f044a7a3d1e8}{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+EQ}}(a,  b)~(!!(fabs((double)(a) -\/ (double)(b)) $<$= D\+B\+L\+\_\+\+E\+P\+S\+I\+L\+ON))
\begin{DoxyCompactList}\small\item\em Safe comparison of double. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Tools__Group_gacff7543938fee3ca0ad4caf78bb561bd}{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+N\+O\+N\+Z\+E\+RO}}(a)~(!!(fpclassify((double)(a)) != F\+P\+\_\+\+Z\+E\+RO))
\begin{DoxyCompactList}\small\item\em Determines if a double is not zero. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Tools__Group_ga94caabe159a9a7c9b79fe925d66ae680}\label{group__Eina__Tools__Group_ga94caabe159a9a7c9b79fe925d66ae680}} 
typedef struct \mbox{\hyperlink{struct__Eina__Xattr}{\+\_\+\+Eina\+\_\+\+Xattr}} {\bfseries Eina\+\_\+\+Xattr}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}} \{ \newline
\mbox{\hyperlink{group__Eina__Tools__Group_gga016f6b7c97a22104a6ba6d1b042548c8ad35191dac37d61fc7c2801fad48ff557}{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+I\+N\+S\+E\+RT}}, 
\newline
\mbox{\hyperlink{group__Eina__Tools__Group_gga016f6b7c97a22104a6ba6d1b042548c8ace44490bfe4f7e023f0756874dd9286e}{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+R\+E\+P\+L\+A\+CE}}, 
\newline
\mbox{\hyperlink{group__Eina__Tools__Group_gga016f6b7c97a22104a6ba6d1b042548c8ae876a765eb0900944d41b37fef5387f8}{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+C\+R\+E\+A\+T\+ED}}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
const char $\ast$ \mbox{\hyperlink{group__Eina__Tools__Group_gaaa4c9c9269f1cc1508ca0a785dec8c1c}{eina\+\_\+environment\+\_\+home\+\_\+get}} (void)
\begin{DoxyCompactList}\small\item\em Returns the content of the environment referred by H\+O\+ME on this system. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__Eina__Tools__Group_ga6f462dce106714a3ba29f63deea61be2}{eina\+\_\+environment\+\_\+tmp\+\_\+get}} (void)
\begin{DoxyCompactList}\small\item\em Returns the content of the environment referred as T\+M\+P\+D\+IR on this system. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga2eff9dff88bf972e43961d1a746fe7c4}{eina\+\_\+dbl\+\_\+exact}} (double a, double b)
\begin{DoxyCompactList}\small\item\em Warningless comparison of doubles using ==. \end{DoxyCompactList}\item 
static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga067b67f9f7a9c83f26abd15a45203c33}{eina\+\_\+flt\+\_\+exact}} (float a, float b)
\begin{DoxyCompactList}\small\item\em Warningless comparison of floats using ==. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}} $\ast$ \mbox{\hyperlink{group__Eina__Tools__Group_ga298f8faf4124cc14b82175b54810727f}{eina\+\_\+xattr\+\_\+ls}} (const char $\ast$file) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(1) \mbox{\hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+LT}}
\begin{DoxyCompactList}\small\item\em Gets an iterator that lists all extended attribute of a file. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}} $\ast$ \mbox{\hyperlink{group__Eina__Tools__Group_ga3e86be2b045ad1b70ce4c2a3273d25df}{eina\+\_\+xattr\+\_\+value\+\_\+ls}} (const char $\ast$file) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(1) \mbox{\hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+LT}}
\begin{DoxyCompactList}\small\item\em Gets an iterator that list all extended attribute value related to a fd. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}} $\ast$ \mbox{\hyperlink{group__Eina__Tools__Group_gaa51b522b7a5b77bdd5da019b08778215}{eina\+\_\+xattr\+\_\+fd\+\_\+ls}} (int fd) \mbox{\hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+LT}}
\begin{DoxyCompactList}\small\item\em Gets an iterator that list all extended attribute related to a fd. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}} $\ast$ \mbox{\hyperlink{group__Eina__Tools__Group_ga7552a5625aa4c8d9721563b9319f9c4b}{eina\+\_\+xattr\+\_\+value\+\_\+fd\+\_\+ls}} (int fd) \mbox{\hyperlink{group__Eina__Types__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}{E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+LT}}
\begin{DoxyCompactList}\small\item\em Gets an iterator that list all extended attribute value related to a fd. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga27023aac24c8cb42041ab0d19a610415}{eina\+\_\+xattr\+\_\+copy}} (const char $\ast$src, const char $\ast$dst) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(1
\begin{DoxyCompactList}\small\item\em Copies the extended attribute from one file to another. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga27d995b4c40a2c891a95f8520e912688}{eina\+\_\+xattr\+\_\+fd\+\_\+copy}} (int src, int dst)
\begin{DoxyCompactList}\small\item\em Copies the extended attribute from one file descriptor to another. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void $\ast$ \mbox{\hyperlink{group__Eina__Tools__Group_ga7efe77e39be245924e5a279083dbf13c}{eina\+\_\+xattr\+\_\+get}} (const char $\ast$file, const char $\ast$attribute, ssize\+\_\+t $\ast$size) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(1
\begin{DoxyCompactList}\small\item\em Retrieves an extended attribute from a file. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void $\ast$ \mbox{\hyperlink{group__Eina__Tools__Group_ga0b692409fe4593d7e6d78b50bc5d6d72}{eina\+\_\+xattr\+\_\+fd\+\_\+get}} (int fd, const char $\ast$attribute, ssize\+\_\+t $\ast$size) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(2
\begin{DoxyCompactList}\small\item\em Retrieves an extended attribute from a file descriptor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga88302a7e18e4edf9371776ada5c201fa}{eina\+\_\+xattr\+\_\+set}} (const char $\ast$file, const char $\ast$attribute, const void $\ast$data, ssize\+\_\+t length, \mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}} flags) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(1
\begin{DoxyCompactList}\small\item\em Sets an extended attribute on a file. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga5c0b736357f27fad46077ab3639bdcd5}{eina\+\_\+xattr\+\_\+fd\+\_\+set}} (int fd, const char $\ast$attribute, const void $\ast$data, ssize\+\_\+t length, \mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}} flags) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(2
\begin{DoxyCompactList}\small\item\em Sets an extended attribute on a file descriptor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_gae9974f188c14d5ce4b0a663c648fa6ac}{eina\+\_\+xattr\+\_\+del}} (const char $\ast$file, const char $\ast$attribute) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(1
\begin{DoxyCompactList}\small\item\em Deletes (removes) an extended attribute from a file. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga1e8c885c3d3890a5f62edee42e51a962}{eina\+\_\+xattr\+\_\+fd\+\_\+del}} (int fd, const char $\ast$attribute) \mbox{\hyperlink{group__Eina__Types__Group_ga1a066aa3069f7e43279021cc1e378fac}{E\+I\+N\+A\+\_\+\+A\+R\+G\+\_\+\+N\+O\+N\+N\+U\+LL}}(2)
\begin{DoxyCompactList}\small\item\em Deletes (removes) an extended attribute from a file descriptor. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga17eefbfd9d72869049797e0101df9747}{eina\+\_\+xattr\+\_\+string\+\_\+set}} (const char $\ast$file, const char $\ast$attribute, const char $\ast$data, \mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}} flags)
\begin{DoxyCompactList}\small\item\em Sets a string as a extended attribute properties. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} char $\ast$ \mbox{\hyperlink{group__Eina__Tools__Group_ga2a0cdd9e4858b4a2427a4323f6915fcc}{eina\+\_\+xattr\+\_\+string\+\_\+get}} (const char $\ast$file, const char $\ast$attribute)
\begin{DoxyCompactList}\small\item\em Gets a string from an extended attribute properties. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_gaaa0c45a781f6423c6198d0655a958b15}{eina\+\_\+xattr\+\_\+double\+\_\+set}} (const char $\ast$file, const char $\ast$attribute, double value, \mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}} flags)
\begin{DoxyCompactList}\small\item\em Sets a double as a extended attribute properties. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga24d65206c2b78d7ce7a99be3cb636642}{eina\+\_\+xattr\+\_\+double\+\_\+get}} (const char $\ast$file, const char $\ast$attribute, double $\ast$value)
\begin{DoxyCompactList}\small\item\em Gets a double from an extended attribute properties. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga780f9fa5eb05397afb52485c80cb36f6}{eina\+\_\+xattr\+\_\+int\+\_\+set}} (const char $\ast$file, const char $\ast$attribute, int value, \mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}} flags)
\begin{DoxyCompactList}\small\item\em Sets an int as a extended attribute properties. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Tools__Group_ga7a6db379f8d665e54f7d6f007313a120}{eina\+\_\+xattr\+\_\+int\+\_\+get}} (const char $\ast$file, const char $\ast$attribute, int $\ast$value)
\begin{DoxyCompactList}\small\item\em Gets a int from an extended attribute properties. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Tools__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}\label{group__Eina__Tools__Group_ga4ba89e4b58eff707a6cf05ffe0cd4dea}} 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void {\bfseries E\+I\+N\+A\+\_\+\+W\+A\+R\+N\+\_\+\+U\+N\+U\+S\+E\+D\+\_\+\+R\+E\+S\+U\+LT}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Eina tools aims to help application development, providing ways to make it safer, log errors, manage memory more efficiently and more. 

For more information refer to the \mbox{\hyperlink{tutorial_eina_string}{string example}}. 

\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Eina__Tools__Group_ga67d74b61939da29afc78e0100a2bb534}\label{group__Eina__Tools__Group_ga67d74b61939da29afc78e0100a2bb534}} 
\index{Tools@{Tools}!EINA\_FLT\_EQ@{EINA\_FLT\_EQ}}
\index{EINA\_FLT\_EQ@{EINA\_FLT\_EQ}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{EINA\_FLT\_EQ}{EINA\_FLT\_EQ}}
{\footnotesize\ttfamily \#define E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+EQ(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{b }\end{DoxyParamCaption})~(!!(fabsf((float)(a) -\/ (float)(b)) $<$= F\+L\+T\+\_\+\+E\+P\+S\+I\+L\+ON))}



Safe comparison of float. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & First member to compare \\
\hline
\mbox{\texttt{ in}}  & {\em b} & Second member to compare \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+19
\end{DoxySince}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if two floats match 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Tools__Group_gad4eb3fc9655b9ceb274dd8b0a7baa5d7}\label{group__Eina__Tools__Group_gad4eb3fc9655b9ceb274dd8b0a7baa5d7}} 
\index{Tools@{Tools}!EINA\_FLT\_NONZERO@{EINA\_FLT\_NONZERO}}
\index{EINA\_FLT\_NONZERO@{EINA\_FLT\_NONZERO}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{EINA\_FLT\_NONZERO}{EINA\_FLT\_NONZERO}}
{\footnotesize\ttfamily \#define E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+N\+O\+N\+Z\+E\+RO(\begin{DoxyParamCaption}\item[{}]{a }\end{DoxyParamCaption})~(!!(fpclassify((float)(a)) != F\+P\+\_\+\+Z\+E\+RO))}



Determines if a float is not zero. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & The float\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if float is not zero 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Tools__Group_ga6bee37244b675b83d6a4f044a7a3d1e8}\label{group__Eina__Tools__Group_ga6bee37244b675b83d6a4f044a7a3d1e8}} 
\index{Tools@{Tools}!EINA\_DBL\_EQ@{EINA\_DBL\_EQ}}
\index{EINA\_DBL\_EQ@{EINA\_DBL\_EQ}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{EINA\_DBL\_EQ}{EINA\_DBL\_EQ}}
{\footnotesize\ttfamily \#define E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+EQ(\begin{DoxyParamCaption}\item[{}]{a,  }\item[{}]{b }\end{DoxyParamCaption})~(!!(fabs((double)(a) -\/ (double)(b)) $<$= D\+B\+L\+\_\+\+E\+P\+S\+I\+L\+ON))}



Safe comparison of double. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & First member to compare \\
\hline
\mbox{\texttt{ in}}  & {\em b} & Second member to compare \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+19
\end{DoxySince}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if two double match 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eina__Tools__Group_gacff7543938fee3ca0ad4caf78bb561bd}\label{group__Eina__Tools__Group_gacff7543938fee3ca0ad4caf78bb561bd}} 
\index{Tools@{Tools}!EINA\_DBL\_NONZERO@{EINA\_DBL\_NONZERO}}
\index{EINA\_DBL\_NONZERO@{EINA\_DBL\_NONZERO}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{EINA\_DBL\_NONZERO}{EINA\_DBL\_NONZERO}}
{\footnotesize\ttfamily \#define E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+N\+O\+N\+Z\+E\+RO(\begin{DoxyParamCaption}\item[{}]{a }\end{DoxyParamCaption})~(!!(fpclassify((double)(a)) != F\+P\+\_\+\+Z\+E\+RO))}



Determines if a double is not zero. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & The double\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if double is not zero 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}


\doxysubsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}\label{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}} 
\index{Tools@{Tools}!Eina\_Xattr\_Flags@{Eina\_Xattr\_Flags}}
\index{Eina\_Xattr\_Flags@{Eina\_Xattr\_Flags}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{Eina\_Xattr\_Flags}{Eina\_Xattr\_Flags}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}}}

define extended attribute creation

\begin{DoxySince}{Since}
1.\+1 
\end{DoxySince}
\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_XATTR\_INSERT@{EINA\_XATTR\_INSERT}!Tools@{Tools}}\index{Tools@{Tools}!EINA\_XATTR\_INSERT@{EINA\_XATTR\_INSERT}}}\mbox{\Hypertarget{group__Eina__Tools__Group_gga016f6b7c97a22104a6ba6d1b042548c8ad35191dac37d61fc7c2801fad48ff557}\label{group__Eina__Tools__Group_gga016f6b7c97a22104a6ba6d1b042548c8ad35191dac37d61fc7c2801fad48ff557}} 
E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+I\+N\+S\+E\+RT&This is the default behavior, it will either create or replace the extended attribute. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_XATTR\_REPLACE@{EINA\_XATTR\_REPLACE}!Tools@{Tools}}\index{Tools@{Tools}!EINA\_XATTR\_REPLACE@{EINA\_XATTR\_REPLACE}}}\mbox{\Hypertarget{group__Eina__Tools__Group_gga016f6b7c97a22104a6ba6d1b042548c8ace44490bfe4f7e023f0756874dd9286e}\label{group__Eina__Tools__Group_gga016f6b7c97a22104a6ba6d1b042548c8ace44490bfe4f7e023f0756874dd9286e}} 
E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+R\+E\+P\+L\+A\+CE&This will only succeed if the extended attribute previously existed. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{EINA\_XATTR\_CREATED@{EINA\_XATTR\_CREATED}!Tools@{Tools}}\index{Tools@{Tools}!EINA\_XATTR\_CREATED@{EINA\_XATTR\_CREATED}}}\mbox{\Hypertarget{group__Eina__Tools__Group_gga016f6b7c97a22104a6ba6d1b042548c8ae876a765eb0900944d41b37fef5387f8}\label{group__Eina__Tools__Group_gga016f6b7c97a22104a6ba6d1b042548c8ae876a765eb0900944d41b37fef5387f8}} 
E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+C\+R\+E\+A\+T\+ED&This will only succeed if the extended attribute wasn\textquotesingle{}t previously set. \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Eina__Tools__Group_gaaa4c9c9269f1cc1508ca0a785dec8c1c}\label{group__Eina__Tools__Group_gaaa4c9c9269f1cc1508ca0a785dec8c1c}} 
\index{Tools@{Tools}!eina\_environment\_home\_get@{eina\_environment\_home\_get}}
\index{eina\_environment\_home\_get@{eina\_environment\_home\_get}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_environment\_home\_get()}{eina\_environment\_home\_get()}}
{\footnotesize\ttfamily const char$\ast$ eina\+\_\+environment\+\_\+home\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Returns the content of the environment referred by H\+O\+ME on this system. 

\begin{DoxyReturn}{Returns}
A temporary string to the content referred by H\+O\+ME on this system.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
The result of this call is highly system dependent and you better use it instead of the naive getenv(\char`\"{}\+H\+O\+M\+E\char`\"{}).
\end{DoxyNote}
\begin{DoxySince}{Since}
1.\+15 
\end{DoxySince}


Referenced by ecore\+\_\+file\+\_\+app\+\_\+exe\+\_\+get().

\mbox{\Hypertarget{group__Eina__Tools__Group_ga6f462dce106714a3ba29f63deea61be2}\label{group__Eina__Tools__Group_ga6f462dce106714a3ba29f63deea61be2}} 
\index{Tools@{Tools}!eina\_environment\_tmp\_get@{eina\_environment\_tmp\_get}}
\index{eina\_environment\_tmp\_get@{eina\_environment\_tmp\_get}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_environment\_tmp\_get()}{eina\_environment\_tmp\_get()}}
{\footnotesize\ttfamily const char$\ast$ eina\+\_\+environment\+\_\+tmp\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Returns the content of the environment referred as T\+M\+P\+D\+IR on this system. 

\begin{DoxyReturn}{Returns}
A temporary string to the content referred by T\+M\+P\+D\+IR on this system.
\end{DoxyReturn}
\begin{DoxyNote}{Note}
The result of this call is highly system dependent and you better use it instead of the naive getenv(\char`\"{}\+T\+M\+P\+D\+I\+R\char`\"{}).
\end{DoxyNote}
\begin{DoxySince}{Since}
1.\+15 
\end{DoxySince}


Referenced by ecore\+\_\+con\+\_\+local\+\_\+path\+\_\+new().

\mbox{\Hypertarget{group__Eina__Tools__Group_ga2eff9dff88bf972e43961d1a746fe7c4}\label{group__Eina__Tools__Group_ga2eff9dff88bf972e43961d1a746fe7c4}} 
\index{Tools@{Tools}!eina\_dbl\_exact@{eina\_dbl\_exact}}
\index{eina\_dbl\_exact@{eina\_dbl\_exact}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_dbl\_exact()}{eina\_dbl\_exact()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+dbl\+\_\+exact (\begin{DoxyParamCaption}\item[{double}]{a,  }\item[{double}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Warningless comparison of doubles using ==. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & First member to compare \\
\hline
\mbox{\texttt{ in}}  & {\em b} & Second member to compare\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if two doubles match 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Tools__Group_ga067b67f9f7a9c83f26abd15a45203c33}\label{group__Eina__Tools__Group_ga067b67f9f7a9c83f26abd15a45203c33}} 
\index{Tools@{Tools}!eina\_flt\_exact@{eina\_flt\_exact}}
\index{eina\_flt\_exact@{eina\_flt\_exact}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_flt\_exact()}{eina\_flt\_exact()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+flt\+\_\+exact (\begin{DoxyParamCaption}\item[{float}]{a,  }\item[{float}]{b }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Warningless comparison of floats using ==. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & First member to compare \\
\hline
\mbox{\texttt{ in}}  & {\em b} & Second member to compare\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if two floats match 
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Tools__Group_ga298f8faf4124cc14b82175b54810727f}\label{group__Eina__Tools__Group_ga298f8faf4124cc14b82175b54810727f}} 
\index{Tools@{Tools}!eina\_xattr\_ls@{eina\_xattr\_ls}}
\index{eina\_xattr\_ls@{eina\_xattr\_ls}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_ls()}{eina\_xattr\_ls()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}}$\ast$ eina\+\_\+xattr\+\_\+ls (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file }\end{DoxyParamCaption})}



Gets an iterator that lists all extended attribute of a file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The filename to retrieve the extended attribute list from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an iterator.
\end{DoxyReturn}
The iterator will not allocate any data during the iteration step, so you need to copy them yourself if you need.

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


References E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+ET, E\+I\+N\+A\+\_\+\+S\+A\+F\+E\+T\+Y\+\_\+\+O\+N\+\_\+\+N\+U\+L\+L\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL, F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+R\+EE, F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+G\+E\+T\+\_\+\+C\+O\+N\+T\+A\+I\+N\+ER, and F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+N\+E\+XT.

\mbox{\Hypertarget{group__Eina__Tools__Group_ga3e86be2b045ad1b70ce4c2a3273d25df}\label{group__Eina__Tools__Group_ga3e86be2b045ad1b70ce4c2a3273d25df}} 
\index{Tools@{Tools}!eina\_xattr\_value\_ls@{eina\_xattr\_value\_ls}}
\index{eina\_xattr\_value\_ls@{eina\_xattr\_value\_ls}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_value\_ls()}{eina\_xattr\_value\_ls()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}}$\ast$ eina\+\_\+xattr\+\_\+value\+\_\+ls (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file }\end{DoxyParamCaption})}



Gets an iterator that list all extended attribute value related to a fd. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The filename to retrieve the extended attribute list from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An iterator.
\end{DoxyReturn}
The iterator will not allocate any data during the iteration step, so you need to copy them yourself if you need. The iterator will provide an Eina\+\_\+\+Xattr structure.

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


References E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+ET, 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(), F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+R\+EE, F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+G\+E\+T\+\_\+\+C\+O\+N\+T\+A\+I\+N\+ER, and F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+N\+E\+XT.

\mbox{\Hypertarget{group__Eina__Tools__Group_gaa51b522b7a5b77bdd5da019b08778215}\label{group__Eina__Tools__Group_gaa51b522b7a5b77bdd5da019b08778215}} 
\index{Tools@{Tools}!eina\_xattr\_fd\_ls@{eina\_xattr\_fd\_ls}}
\index{eina\_xattr\_fd\_ls@{eina\_xattr\_fd\_ls}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_fd\_ls()}{eina\_xattr\_fd\_ls()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}}$\ast$ eina\+\_\+xattr\+\_\+fd\+\_\+ls (\begin{DoxyParamCaption}\item[{int}]{fd }\end{DoxyParamCaption})}



Gets an iterator that list all extended attribute related to a fd. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fd} & The file descriptor to retrieve the extended attribute list from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
an iterator.
\end{DoxyReturn}
The iterator will not allocate any data during the iteration step, so you need to copy them yourself if you need.

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


References E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+ET, F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+R\+EE, F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+G\+E\+T\+\_\+\+C\+O\+N\+T\+A\+I\+N\+ER, and F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+N\+E\+XT.



Referenced by eina\+\_\+file\+\_\+xattr\+\_\+get().

\mbox{\Hypertarget{group__Eina__Tools__Group_ga7552a5625aa4c8d9721563b9319f9c4b}\label{group__Eina__Tools__Group_ga7552a5625aa4c8d9721563b9319f9c4b}} 
\index{Tools@{Tools}!eina\_xattr\_value\_fd\_ls@{eina\_xattr\_value\_fd\_ls}}
\index{eina\_xattr\_value\_fd\_ls@{eina\_xattr\_value\_fd\_ls}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_value\_fd\_ls()}{eina\_xattr\_value\_fd\_ls()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Iterator__Group_ga15b975bb881d955249ce13d4ebc96948}{Eina\+\_\+\+Iterator}}$\ast$ eina\+\_\+xattr\+\_\+value\+\_\+fd\+\_\+ls (\begin{DoxyParamCaption}\item[{int}]{fd }\end{DoxyParamCaption})}



Gets an iterator that list all extended attribute value related to a fd. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fd} & The file descriptor to retrieve the extended attribute list from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An iterator.
\end{DoxyReturn}
The iterator will not allocate any data during the iteration step, so you need to copy them yourself if you need. The iterator will provide an Eina\+\_\+\+Xattr structure.

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


References E\+I\+N\+A\+\_\+\+M\+A\+G\+I\+C\+\_\+\+S\+ET, F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+R\+EE, F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+G\+E\+T\+\_\+\+C\+O\+N\+T\+A\+I\+N\+ER, and F\+U\+N\+C\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+N\+E\+XT.



Referenced by eina\+\_\+file\+\_\+xattr\+\_\+value\+\_\+get().

\mbox{\Hypertarget{group__Eina__Tools__Group_ga27023aac24c8cb42041ab0d19a610415}\label{group__Eina__Tools__Group_ga27023aac24c8cb42041ab0d19a610415}} 
\index{Tools@{Tools}!eina\_xattr\_copy@{eina\_xattr\_copy}}
\index{eina\_xattr\_copy@{eina\_xattr\_copy}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_copy()}{eina\_xattr\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+copy (\begin{DoxyParamCaption}\item[{const char $\ast$}]{src,  }\item[{const char $\ast$}]{dst }\end{DoxyParamCaption})}



Copies the extended attribute from one file to another. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em src} & source file to use as input. \\
\hline
\mbox{\texttt{ in}}  & {\em dst} & destination file to use as output. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Tools__Group_ga27d995b4c40a2c891a95f8520e912688}{eina\+\_\+xattr\+\_\+fd\+\_\+copy()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Tools__Group_ga27d995b4c40a2c891a95f8520e912688}\label{group__Eina__Tools__Group_ga27d995b4c40a2c891a95f8520e912688}} 
\index{Tools@{Tools}!eina\_xattr\_fd\_copy@{eina\_xattr\_fd\_copy}}
\index{eina\_xattr\_fd\_copy@{eina\_xattr\_fd\_copy}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_fd\_copy()}{eina\_xattr\_fd\_copy()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+fd\+\_\+copy (\begin{DoxyParamCaption}\item[{int}]{src,  }\item[{int}]{dst }\end{DoxyParamCaption})}



Copies the extended attribute from one file descriptor to another. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em src} & source file descriptor to use as input. \\
\hline
\mbox{\texttt{ in}}  & {\em dst} & destination file descriptor to use as output. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Tools__Group_ga27023aac24c8cb42041ab0d19a610415}{eina\+\_\+xattr\+\_\+copy()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}


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

\mbox{\Hypertarget{group__Eina__Tools__Group_ga7efe77e39be245924e5a279083dbf13c}\label{group__Eina__Tools__Group_ga7efe77e39be245924e5a279083dbf13c}} 
\index{Tools@{Tools}!eina\_xattr\_get@{eina\_xattr\_get}}
\index{eina\_xattr\_get@{eina\_xattr\_get}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_get()}{eina\_xattr\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void$\ast$ eina\+\_\+xattr\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{const char $\ast$}]{attribute,  }\item[{ssize\+\_\+t $\ast$}]{size }\end{DoxyParamCaption})}



Retrieves an extended attribute from a file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The file to retrieve the extended attribute from. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The extended attribute name to retrieve. \\
\hline
\mbox{\texttt{ out}}  & {\em size} & The size of the retrieved extended attribute. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the allocated data that hold the extended attribute value.
\end{DoxyReturn}
It will return {\ttfamily N\+U\+LL} and $\ast$size will be {\ttfamily 0} if it fails.

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


Referenced by eet\+\_\+data\+\_\+xattr\+\_\+cipher\+\_\+get(), and eina\+\_\+xattr\+\_\+string\+\_\+get().

\mbox{\Hypertarget{group__Eina__Tools__Group_ga0b692409fe4593d7e6d78b50bc5d6d72}\label{group__Eina__Tools__Group_ga0b692409fe4593d7e6d78b50bc5d6d72}} 
\index{Tools@{Tools}!eina\_xattr\_fd\_get@{eina\_xattr\_fd\_get}}
\index{eina\_xattr\_fd\_get@{eina\_xattr\_fd\_get}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_fd\_get()}{eina\_xattr\_fd\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void$\ast$ eina\+\_\+xattr\+\_\+fd\+\_\+get (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{const char $\ast$}]{attribute,  }\item[{ssize\+\_\+t $\ast$}]{size }\end{DoxyParamCaption})}



Retrieves an extended attribute from a file descriptor. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fd} & The file descriptor to retrieve the extended attribute from. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The extended attribute name to retrieve. \\
\hline
\mbox{\texttt{ out}}  & {\em size} & The size of the retrieved extended attribute. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the allocated data that hold the extended attribute value.
\end{DoxyReturn}
It will return {\ttfamily N\+U\+LL} and $\ast$size will be {\ttfamily 0} if it fails.

\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Tools__Group_ga88302a7e18e4edf9371776ada5c201fa}\label{group__Eina__Tools__Group_ga88302a7e18e4edf9371776ada5c201fa}} 
\index{Tools@{Tools}!eina\_xattr\_set@{eina\_xattr\_set}}
\index{eina\_xattr\_set@{eina\_xattr\_set}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_set()}{eina\_xattr\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+set (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{const char $\ast$}]{attribute,  }\item[{const void $\ast$}]{data,  }\item[{ssize\+\_\+t}]{length,  }\item[{\mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}}}]{flags }\end{DoxyParamCaption})}



Sets an extended attribute on a file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The file to set the extended attribute to. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to set. \\
\hline
\mbox{\texttt{ in}}  & {\em data} & The data to set. \\
\hline
\mbox{\texttt{ in}}  & {\em length} & The length of the data to set. \\
\hline
\mbox{\texttt{ in}}  & {\em flags} & Define the set policy. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1 
\end{DoxySince}


Referenced by eet\+\_\+data\+\_\+xattr\+\_\+cipher\+\_\+set(), and eina\+\_\+xattr\+\_\+string\+\_\+set().

\mbox{\Hypertarget{group__Eina__Tools__Group_ga5c0b736357f27fad46077ab3639bdcd5}\label{group__Eina__Tools__Group_ga5c0b736357f27fad46077ab3639bdcd5}} 
\index{Tools@{Tools}!eina\_xattr\_fd\_set@{eina\_xattr\_fd\_set}}
\index{eina\_xattr\_fd\_set@{eina\_xattr\_fd\_set}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_fd\_set()}{eina\_xattr\_fd\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+fd\+\_\+set (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{const char $\ast$}]{attribute,  }\item[{const void $\ast$}]{data,  }\item[{ssize\+\_\+t}]{length,  }\item[{\mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}}}]{flags }\end{DoxyParamCaption})}



Sets an extended attribute on a file descriptor. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fd} & The file descriptor to set the extended attribute to. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to set. \\
\hline
\mbox{\texttt{ in}}  & {\em data} & The data to set. \\
\hline
\mbox{\texttt{ in}}  & {\em length} & The length of the data to set. \\
\hline
\mbox{\texttt{ in}}  & {\em flags} & Define the set policy. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Tools__Group_gae9974f188c14d5ce4b0a663c648fa6ac}\label{group__Eina__Tools__Group_gae9974f188c14d5ce4b0a663c648fa6ac}} 
\index{Tools@{Tools}!eina\_xattr\_del@{eina\_xattr\_del}}
\index{eina\_xattr\_del@{eina\_xattr\_del}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_del()}{eina\_xattr\_del()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+del (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{const char $\ast$}]{attribute }\end{DoxyParamCaption})}



Deletes (removes) an extended attribute from a file. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The file to del the extended attribute from. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to del. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+8 
\end{DoxySince}
\mbox{\Hypertarget{group__Eina__Tools__Group_ga1e8c885c3d3890a5f62edee42e51a962}\label{group__Eina__Tools__Group_ga1e8c885c3d3890a5f62edee42e51a962}} 
\index{Tools@{Tools}!eina\_xattr\_fd\_del@{eina\_xattr\_fd\_del}}
\index{eina\_xattr\_fd\_del@{eina\_xattr\_fd\_del}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_fd\_del()}{eina\_xattr\_fd\_del()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+fd\+\_\+del (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{const char $\ast$}]{attribute }\end{DoxyParamCaption})}



Deletes (removes) an extended attribute from a file descriptor. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em fd} & The file descriptor to del the extended attribute from. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to del. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+8 
\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__Eina__Tools__Group_ga17eefbfd9d72869049797e0101df9747}\label{group__Eina__Tools__Group_ga17eefbfd9d72869049797e0101df9747}} 
\index{Tools@{Tools}!eina\_xattr\_string\_set@{eina\_xattr\_string\_set}}
\index{eina\_xattr\_string\_set@{eina\_xattr\_string\_set}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_string\_set()}{eina\_xattr\_string\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+string\+\_\+set (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{const char $\ast$}]{attribute,  }\item[{const char $\ast$}]{data,  }\item[{\mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}}}]{flags }\end{DoxyParamCaption})}



Sets a string as a extended attribute properties. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The file to set the string to. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to set. \\
\hline
\mbox{\texttt{ in}}  & {\em data} & The N\+U\+L\+L-\/terminated string to set. \\
\hline
\mbox{\texttt{ in}}  & {\em flags} & Define the set policy. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+UE on success, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE otherwise.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1 
\end{DoxySince}


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



Referenced by eina\+\_\+xattr\+\_\+double\+\_\+set(), and eina\+\_\+xattr\+\_\+int\+\_\+set().

\mbox{\Hypertarget{group__Eina__Tools__Group_ga2a0cdd9e4858b4a2427a4323f6915fcc}\label{group__Eina__Tools__Group_ga2a0cdd9e4858b4a2427a4323f6915fcc}} 
\index{Tools@{Tools}!eina\_xattr\_string\_get@{eina\_xattr\_string\_get}}
\index{eina\_xattr\_string\_get@{eina\_xattr\_string\_get}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_string\_get()}{eina\_xattr\_string\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} char$\ast$ eina\+\_\+xattr\+\_\+string\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{const char $\ast$}]{attribute }\end{DoxyParamCaption})}



Gets a string from an extended attribute properties. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The file to get the string from. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to get. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
A valid string on success, {\ttfamily N\+U\+LL} otherwise.
\end{DoxyReturn}
This call check that the string is properly N\+U\+L\+L-\/terminated before returning it.

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


References eina\+\_\+xattr\+\_\+get().



Referenced by eina\+\_\+xattr\+\_\+double\+\_\+get(), and eina\+\_\+xattr\+\_\+int\+\_\+get().

\mbox{\Hypertarget{group__Eina__Tools__Group_gaaa0c45a781f6423c6198d0655a958b15}\label{group__Eina__Tools__Group_gaaa0c45a781f6423c6198d0655a958b15}} 
\index{Tools@{Tools}!eina\_xattr\_double\_set@{eina\_xattr\_double\_set}}
\index{eina\_xattr\_double\_set@{eina\_xattr\_double\_set}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_double\_set()}{eina\_xattr\_double\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+double\+\_\+set (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{const char $\ast$}]{attribute,  }\item[{double}]{value,  }\item[{\mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}}}]{flags }\end{DoxyParamCaption})}



Sets a double as a extended attribute properties. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The file to set the double to. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to set. \\
\hline
\mbox{\texttt{ in}}  & {\em value} & The N\+U\+L\+L-\/terminated double to set. \\
\hline
\mbox{\texttt{ in}}  & {\em flags} & Define the set policy. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1 
\end{DoxySince}


References eina\+\_\+convert\+\_\+dtoa(), and eina\+\_\+xattr\+\_\+string\+\_\+set().



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

\mbox{\Hypertarget{group__Eina__Tools__Group_ga24d65206c2b78d7ce7a99be3cb636642}\label{group__Eina__Tools__Group_ga24d65206c2b78d7ce7a99be3cb636642}} 
\index{Tools@{Tools}!eina\_xattr\_double\_get@{eina\_xattr\_double\_get}}
\index{eina\_xattr\_double\_get@{eina\_xattr\_double\_get}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_double\_get()}{eina\_xattr\_double\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+double\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{const char $\ast$}]{attribute,  }\item[{double $\ast$}]{value }\end{DoxyParamCaption})}



Gets a double from an extended attribute properties. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The file to get the string from. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to get. \\
\hline
\mbox{\texttt{ out}}  & {\em value} & Where to put the extracted value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
This call check that the double is correctly set.

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


References eina\+\_\+convert\+\_\+atod(), E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+S\+A\+F\+E\+T\+Y\+\_\+\+O\+N\+\_\+\+N\+U\+L\+L\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL, E\+I\+N\+A\+\_\+\+T\+R\+UE, and eina\+\_\+xattr\+\_\+string\+\_\+get().



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

\mbox{\Hypertarget{group__Eina__Tools__Group_ga780f9fa5eb05397afb52485c80cb36f6}\label{group__Eina__Tools__Group_ga780f9fa5eb05397afb52485c80cb36f6}} 
\index{Tools@{Tools}!eina\_xattr\_int\_set@{eina\_xattr\_int\_set}}
\index{eina\_xattr\_int\_set@{eina\_xattr\_int\_set}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_int\_set()}{eina\_xattr\_int\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+int\+\_\+set (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{const char $\ast$}]{attribute,  }\item[{int}]{value,  }\item[{\mbox{\hyperlink{group__Eina__Tools__Group_ga016f6b7c97a22104a6ba6d1b042548c8}{Eina\+\_\+\+Xattr\+\_\+\+Flags}}}]{flags }\end{DoxyParamCaption})}



Sets an int as a extended attribute properties. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The file to set the int to. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to set. \\
\hline
\mbox{\texttt{ in}}  & {\em value} & The N\+U\+L\+L-\/terminated int to set. \\
\hline
\mbox{\texttt{ in}}  & {\em flags} & Define the set policy. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+1 
\end{DoxySince}


References eina\+\_\+convert\+\_\+itoa(), and eina\+\_\+xattr\+\_\+string\+\_\+set().

\mbox{\Hypertarget{group__Eina__Tools__Group_ga7a6db379f8d665e54f7d6f007313a120}\label{group__Eina__Tools__Group_ga7a6db379f8d665e54f7d6f007313a120}} 
\index{Tools@{Tools}!eina\_xattr\_int\_get@{eina\_xattr\_int\_get}}
\index{eina\_xattr\_int\_get@{eina\_xattr\_int\_get}!Tools@{Tools}}
\doxysubsubsection{\texorpdfstring{eina\_xattr\_int\_get()}{eina\_xattr\_int\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+xattr\+\_\+int\+\_\+get (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{const char $\ast$}]{attribute,  }\item[{int $\ast$}]{value }\end{DoxyParamCaption})}



Gets a int from an extended attribute properties. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em file} & The file to get the string from. \\
\hline
\mbox{\texttt{ in}}  & {\em attribute} & The attribute to get. \\
\hline
\mbox{\texttt{ out}}  & {\em value} & Where to put the extracted value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} on success, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} otherwise.
\end{DoxyReturn}
This call check that the int is correctly set.

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


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+S\+A\+F\+E\+T\+Y\+\_\+\+O\+N\+\_\+\+N\+U\+L\+L\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+V\+AL, and eina\+\_\+xattr\+\_\+string\+\_\+get().

