\hypertarget{group__Eina__Tools__Group}{}\section{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.  


\subsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eina__Benchmark__Group}{Benchmark}}
\begin{DoxyCompactList}\small\item\em These functions allow you to add a benchmark framework to a project for timing critical parts and detecting slow parts of code. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Convert__Group}{Convert}}
\begin{DoxyCompactList}\small\item\em These functions allow you to convert integer or real numbers to string or conversely. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Counter__Group}{Counter}}
\begin{DoxyCompactList}\small\item\em ~\newline


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 Eina module provides some helpers over P\+O\+S\+IX \mbox{\hyperlink{group__Evil__Dlfcn_ga7287ef9a037dbf96810a83ab770c2971}{dlopen()}}. \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}}
\begin{DoxyCompactList}\small\item\em Safety checks are a set of macros to check for parameters or values that should never happen, it is similar in concept to assert(), but will log and return instead of abort() your program. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Schedule}{Schedule}}
\begin{DoxyCompactList}\small\item\em T\+O\+DO\+: description. \end{DoxyCompactList}\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 an uniform A\+PI. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Eina__Xattr}{\+\_\+\+Eina\+\_\+\+Xattr}}
\end{DoxyCompactItemize}
\subsection*{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}
\subsection*{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}
\subsection*{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}}
 \}
\begin{DoxyCompactList}\small\item\em define extended attribute creation \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{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 list 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}
\subsection*{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}


\subsection{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}}.

\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Eina__Tools__Group_ga67d74b61939da29afc78e0100a2bb534}\label{group__Eina__Tools__Group_ga67d74b61939da29afc78e0100a2bb534}} 
\index{Tools@{Tools}!E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+EQ@{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+EQ}}
\index{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+EQ@{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+EQ}!Tools@{Tools}}
\subsubsection{\texorpdfstring{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+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}{Parameters}
{\em a} & First member to compar \\
\hline
{\em b} & Second member to compar \\
\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}!E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+N\+O\+N\+Z\+E\+RO@{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+N\+O\+N\+Z\+E\+RO}}
\index{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+N\+O\+N\+Z\+E\+RO@{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+N\+O\+N\+Z\+E\+RO}!Tools@{Tools}}
\subsubsection{\texorpdfstring{E\+I\+N\+A\+\_\+\+F\+L\+T\+\_\+\+N\+O\+N\+Z\+E\+RO}{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}{Parameters}
{\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}!E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+EQ@{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+EQ}}
\index{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+EQ@{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+EQ}!Tools@{Tools}}
\subsubsection{\texorpdfstring{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+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}{Parameters}
{\em a} & First member to compar \\
\hline
{\em b} & Second member to compar \\
\hline
\end{DoxyParams}
\begin{DoxySince}{Since}
1.\+19
\end{DoxySince}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if two double match 
\end{DoxyReturn}


Referenced by ecore\+\_\+animator\+\_\+frametime\+\_\+set(), ecore\+\_\+fb\+\_\+input\+\_\+device\+\_\+threshold\+\_\+click\+\_\+set(), ecore\+\_\+thread\+\_\+global\+\_\+data\+\_\+wait(), edje\+\_\+password\+\_\+show\+\_\+last\+\_\+timeout\+\_\+set(), eina\+\_\+matrix2\+\_\+inverse(), eina\+\_\+matrix2\+\_\+type\+\_\+get(), eina\+\_\+matrix3\+\_\+equal(), eina\+\_\+matrix3\+\_\+inverse(), eina\+\_\+matrix3\+\_\+point\+\_\+transform(), eina\+\_\+matrix3\+\_\+quad\+\_\+square\+\_\+map(), eina\+\_\+matrix3\+\_\+square\+\_\+quad\+\_\+map(), eina\+\_\+matrix3\+\_\+type\+\_\+get(), eina\+\_\+matrix4\+\_\+type\+\_\+get(), elm\+\_\+progressbar\+\_\+part\+\_\+value\+\_\+set(), and evas\+\_\+object\+\_\+textblock\+\_\+valign\+\_\+set().

\mbox{\Hypertarget{group__Eina__Tools__Group_gacff7543938fee3ca0ad4caf78bb561bd}\label{group__Eina__Tools__Group_gacff7543938fee3ca0ad4caf78bb561bd}} 
\index{Tools@{Tools}!E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+N\+O\+N\+Z\+E\+RO@{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+N\+O\+N\+Z\+E\+RO}}
\index{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+N\+O\+N\+Z\+E\+RO@{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+N\+O\+N\+Z\+E\+RO}!Tools@{Tools}}
\subsubsection{\texorpdfstring{E\+I\+N\+A\+\_\+\+D\+B\+L\+\_\+\+N\+O\+N\+Z\+E\+RO}{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}{Parameters}
{\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}


\subsection{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}}
\subsubsection{\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{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+I\+N\+S\+E\+RT@{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+I\+N\+S\+E\+RT}!Tools@{Tools}}\index{Tools@{Tools}!E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+I\+N\+S\+E\+RT@{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+I\+N\+S\+E\+RT}}}\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 behaviour, it will either create or replace the extended attribute. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+R\+E\+P\+L\+A\+CE@{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+R\+E\+P\+L\+A\+CE}!Tools@{Tools}}\index{Tools@{Tools}!E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+R\+E\+P\+L\+A\+CE@{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+R\+E\+P\+L\+A\+CE}}}\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{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+C\+R\+E\+A\+T\+ED@{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+C\+R\+E\+A\+T\+ED}!Tools@{Tools}}\index{Tools@{Tools}!E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+C\+R\+E\+A\+T\+ED@{E\+I\+N\+A\+\_\+\+X\+A\+T\+T\+R\+\_\+\+C\+R\+E\+A\+T\+ED}}}\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}


\subsection{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}}
\subsubsection{\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 refered 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}


References passwd\+::pw\+\_\+dir.



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}}
\subsubsection{\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 refered 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}
\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}}
\subsubsection{\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}{Parameters}
{\em a} & First member to compare \\
\hline
{\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}}
\subsubsection{\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}{Parameters}
{\em a} & First member to compare \\
\hline
{\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}}
\subsubsection{\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 list all extended attribute of a file. 


\begin{DoxyParams}{Parameters}
{\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}
\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}}
\subsubsection{\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}{Parameters}
{\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}
\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}}
\subsubsection{\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}{Parameters}
{\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.

\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}}
\subsubsection{\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}{Parameters}
{\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.

\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}}
\subsubsection{\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}{Parameters}
{\em src} & source file to use as input. \\
\hline
{\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}}
\subsubsection{\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}{Parameters}
{\em src} & source file descriptor to use as input. \\
\hline
{\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\+\_\+\+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}}
\subsubsection{\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}{Parameters}
{\em file} & The file to retrieve the extended attribute from. \\
\hline
{\em attribute} & The extended attribute name to retrieve. \\
\hline
{\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 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}}
\subsubsection{\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}{Parameters}
{\em fd} & The file descriptor to retrieve the extended attribute from. \\
\hline
{\em attribute} & The extended attribute name to retrieve. \\
\hline
{\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}}
\subsubsection{\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}{Parameters}
{\em file} & The file to set the extended attribute to. \\
\hline
{\em attribute} & The attribute to set. \\
\hline
{\em data} & The data to set. \\
\hline
{\em length} & The length of the data to set. \\
\hline
{\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}
\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}}
\subsubsection{\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}{Parameters}
{\em fd} & The file descriptor to set the extended attribute to. \\
\hline
{\em attribute} & The attribute to set. \\
\hline
{\em data} & The data to set. \\
\hline
{\em length} & The length of the data to set. \\
\hline
{\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}}
\subsubsection{\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}{Parameters}
{\em file} & The file to del the extended attribute from. \\
\hline
{\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}}
\subsubsection{\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}{Parameters}
{\em fd} & The file descriptor to del the extended attribute from. \\
\hline
{\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_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}}
\subsubsection{\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}{Parameters}
{\em file} & The file to set the string to. \\
\hline
{\em attribute} & The attribute to set. \\
\hline
{\em data} & The N\+U\+L\+L-\/terminated string to set. \\
\hline
{\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}


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}}
\subsubsection{\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}{Parameters}
{\em file} & The file to get the string from. \\
\hline
{\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().

\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}}
\subsubsection{\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}{Parameters}
{\em file} & The file to set the double to. \\
\hline
{\em attribute} & The attribute to set. \\
\hline
{\em value} & The N\+U\+L\+L-\/terminated double to set. \\
\hline
{\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}}
\subsubsection{\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}{Parameters}
{\em file} & The file to get the string from. \\
\hline
{\em attribute} & The attribute to get. \\
\hline
{\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}


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}}
\subsubsection{\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}{Parameters}
{\em file} & The file to set the int to. \\
\hline
{\em attribute} & The attribute to set. \\
\hline
{\em value} & The N\+U\+L\+L-\/terminated int to set. \\
\hline
{\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}}
\subsubsection{\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}{Parameters}
{\em file} & The file to get the string from. \\
\hline
{\em attribute} & The attribute to get. \\
\hline
{\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}
