\hypertarget{group__Eina__Error__Group}{}\section{Error}
\label{group__Eina__Error__Group}\index{Error@{Error}}


This group discusses the functions that provide error management for projects.  


\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group__Eina__Error__Group_ga637bff52ecef75ad46993950450347ae}{E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR}}~((\mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}})0)
\begin{DoxyCompactList}\small\item\em No error reported. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef int \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}}
\begin{DoxyCompactList}\small\item\em The integer type containing the error type. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} \mbox{\hyperlink{group__Eina__Error__Group_gacd6991f1ce57f853ddb19f32bb4aad38}{eina\+\_\+error\+\_\+msg\+\_\+register}} (const char $\ast$msg) \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 Registers a new error type. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} \mbox{\hyperlink{group__Eina__Error__Group_ga004c7ceb7103cd5a698247ae3eb4578a}{eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register}} (const char $\ast$msg) \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 Registers a new error type, statically allocated message. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eina__Error__Group_ga79082e98c20137de7603f5697d581321}{eina\+\_\+error\+\_\+msg\+\_\+modify}} (\mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} error, const char $\ast$msg) \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 Changes the message of an already registered message. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} \mbox{\hyperlink{group__Eina__Error__Group_gae0683831c4f8eebfdcb4f3cf1aef7052}{eina\+\_\+error\+\_\+get}} (void)
\begin{DoxyCompactList}\small\item\em Returns the last set error. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eina__Error__Group_ga80a8249f135460d4e07ebfe3f0a7bad1}{eina\+\_\+error\+\_\+set}} (\mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} err)
\begin{DoxyCompactList}\small\item\em Sets the last error. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} const char $\ast$ \mbox{\hyperlink{group__Eina__Error__Group_ga3402bc58a9f854391eb35fa7650edda5}{eina\+\_\+error\+\_\+msg\+\_\+get}} (\mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} error) \mbox{\hyperlink{group__Eina__Types__Group_ga4669a55a23089d0f9b70702ef05cea68}{E\+I\+N\+A\+\_\+\+P\+U\+RE}}
\begin{DoxyCompactList}\small\item\em Returns the description of the given error number. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} \mbox{\hyperlink{group__Eina__Error__Group_gaa1fe233ecb39f5f00bdd1f1a6f3c5a83}{eina\+\_\+error\+\_\+find}} (const char $\ast$msg) \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_ga4669a55a23089d0f9b70702ef05cea68}{E\+I\+N\+A\+\_\+\+P\+U\+RE}}
\begin{DoxyCompactList}\small\item\em Finds the \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} corresponding to a message string. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eina__Error__Group_gad23503a9465b7443eac8de2ba8aa0c14}\label{group__Eina__Error__Group_gad23503a9465b7443eac8de2ba8aa0c14}} 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+O\+U\+T\+\_\+\+O\+F\+\_\+\+M\+E\+M\+O\+RY {\bfseries E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}
\end{DoxyCompactItemize}


\subsection{Detailed Description}
This group discusses the functions that provide error management for projects. 

The Eina error module provides a way to manage errors in a simple but powerful way in libraries and modules. It is also used in Eina itself. An extension to libC\textquotesingle{}s {\ttfamily errno} and strerror() facilities, this is extensible and recommended for other libraries and applications as well.

While libC\textquotesingle{}s {\ttfamily errno} is fixed, Eina\+\_\+\+Error can be extended by libraries and applications with domain-\/specific codes and associated error messages. All {\ttfamily errno.\+h} codes are usable seamlessly with Eina\+\_\+\+Error. The constants defined in errno.\+h will have messages as reported by strerror() in \mbox{\hyperlink{group__Eina__Error__Group_ga3402bc58a9f854391eb35fa7650edda5}{eina\+\_\+error\+\_\+msg\+\_\+get()}}

Success (no-\/error) condition is reported with Eina\+\_\+\+Error 0 (\mbox{\hyperlink{group__Eina__Error__Group_ga637bff52ecef75ad46993950450347ae}{E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR}}).

A simple example of how to use this can be seen \mbox{\hyperlink{tutorial_error_page}{here}}. 

\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Eina__Error__Group_ga637bff52ecef75ad46993950450347ae}\label{group__Eina__Error__Group_ga637bff52ecef75ad46993950450347ae}} 
\index{Error@{Error}!E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR@{E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR}}
\index{E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR@{E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR}!Error@{Error}}
\subsubsection{\texorpdfstring{E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR}{EINA\_ERROR\_NO\_ERROR}}
{\footnotesize\ttfamily \#define E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR~((\mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}})0)}



No error reported. 

This is a convenience macro for people that are extra verbose, same as \char`\"{}0\char`\"{}. 

\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}\label{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}} 
\index{Error@{Error}!Eina\+\_\+\+Error@{Eina\+\_\+\+Error}}
\index{Eina\+\_\+\+Error@{Eina\+\_\+\+Error}!Error@{Error}}
\subsubsection{\texorpdfstring{Eina\+\_\+\+Error}{Eina\_Error}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}}}



The integer type containing the error type. 

Errors are registered with \mbox{\hyperlink{group__Eina__Error__Group_gacd6991f1ce57f853ddb19f32bb4aad38}{eina\+\_\+error\+\_\+msg\+\_\+register()}}, \mbox{\hyperlink{group__Eina__Error__Group_ga004c7ceb7103cd5a698247ae3eb4578a}{eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register()}} or those inherited from the system\textquotesingle{}s {\ttfamily errno.\+h} such as {\ttfamily E\+N\+O\+M\+EM}. 

\subsection{Function Documentation}
\mbox{\Hypertarget{group__Eina__Error__Group_gacd6991f1ce57f853ddb19f32bb4aad38}\label{group__Eina__Error__Group_gacd6991f1ce57f853ddb19f32bb4aad38}} 
\index{Error@{Error}!eina\+\_\+error\+\_\+msg\+\_\+register@{eina\+\_\+error\+\_\+msg\+\_\+register}}
\index{eina\+\_\+error\+\_\+msg\+\_\+register@{eina\+\_\+error\+\_\+msg\+\_\+register}!Error@{Error}}
\subsubsection{\texorpdfstring{eina\+\_\+error\+\_\+msg\+\_\+register()}{eina\_error\_msg\_register()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} eina\+\_\+error\+\_\+msg\+\_\+register (\begin{DoxyParamCaption}\item[{const char $\ast$}]{msg }\end{DoxyParamCaption})}



Registers a new error type. 

This function stores the error message described by {\ttfamily msg} in a list. The returned value is a unique identifier greater than or equal to {\ttfamily 1}. The description can be retrieved later by passing the returned value to \mbox{\hyperlink{group__Eina__Error__Group_ga3402bc58a9f854391eb35fa7650edda5}{eina\+\_\+error\+\_\+msg\+\_\+get()}}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em msg} & The description of the error ~\newline
 It is duplicated using \mbox{\hyperlink{group__Eina__Stringshare__Group_ga5293082680141132ffcacc28866ef0ef}{eina\+\_\+stringshare\+\_\+add()}}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The unique number identifier for this error
\end{DoxyReturn}
\begin{DoxyNote}{Note}
There is no need to register messages that exist in libC\textquotesingle{}s {\ttfamily errno.\+h}, such as {\ttfamily E\+N\+O\+M\+EM} or {\ttfamily E\+B\+A\+DF}.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Error__Group_ga004c7ceb7103cd5a698247ae3eb4578a}{eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eina__Error__Group_ga004c7ceb7103cd5a698247ae3eb4578a}\label{group__Eina__Error__Group_ga004c7ceb7103cd5a698247ae3eb4578a}} 
\index{Error@{Error}!eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register@{eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register}}
\index{eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register@{eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register}!Error@{Error}}
\subsubsection{\texorpdfstring{eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register()}{eina\_error\_msg\_static\_register()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register (\begin{DoxyParamCaption}\item[{const char $\ast$}]{msg }\end{DoxyParamCaption})}



Registers a new error type, statically allocated message. 

This function stores the error message described by {\ttfamily msg} in a list. The returned value is a unique identifier greater than or equal to {\ttfamily 1}. The description can be retrieved later by passing the returned value to \mbox{\hyperlink{group__Eina__Error__Group_ga3402bc58a9f854391eb35fa7650edda5}{eina\+\_\+error\+\_\+msg\+\_\+get()}}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em msg} & The description of the error ~\newline
 This string is not duplicated and thus the given pointer should live during the usage of eina\+\_\+error. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The unique number identifier for this error
\end{DoxyReturn}
\begin{DoxyNote}{Note}
There is no need to register messages that exist in libC\textquotesingle{}s {\ttfamily errno.\+h}, such as {\ttfamily E\+N\+O\+M\+EM} or {\ttfamily E\+B\+A\+DF}.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Error__Group_gacd6991f1ce57f853ddb19f32bb4aad38}{eina\+\_\+error\+\_\+msg\+\_\+register()}} 
\end{DoxySeeAlso}


Referenced by ecore\+\_\+con\+\_\+init(), and efl\+::eina\+::unknown\+\_\+error().

\mbox{\Hypertarget{group__Eina__Error__Group_ga79082e98c20137de7603f5697d581321}\label{group__Eina__Error__Group_ga79082e98c20137de7603f5697d581321}} 
\index{Error@{Error}!eina\+\_\+error\+\_\+msg\+\_\+modify@{eina\+\_\+error\+\_\+msg\+\_\+modify}}
\index{eina\+\_\+error\+\_\+msg\+\_\+modify@{eina\+\_\+error\+\_\+msg\+\_\+modify}!Error@{Error}}
\subsubsection{\texorpdfstring{eina\+\_\+error\+\_\+msg\+\_\+modify()}{eina\_error\_msg\_modify()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} eina\+\_\+error\+\_\+msg\+\_\+modify (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}}}]{error,  }\item[{const char $\ast$}]{msg }\end{DoxyParamCaption})}



Changes the message of an already registered message. 

This function modifies the message associated with {\ttfamily error} and changes it to {\ttfamily msg}. If the error is previously registered by \mbox{\hyperlink{group__Eina__Error__Group_ga004c7ceb7103cd5a698247ae3eb4578a}{eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register}} then the string is not duplicated, otherwise the previous message is unrefed and {\ttfamily msg} is copied.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em error} & The Eina\+\_\+\+Error to change the message of \\
\hline
\mbox{\tt in}  & {\em msg} & The description of the error ~\newline
 This string is duplicated only if the error is registered with \mbox{\hyperlink{group__Eina__Error__Group_gacd6991f1ce57f853ddb19f32bb4aad38}{eina\+\_\+error\+\_\+msg\+\_\+register}}, otherwise it must remain intact for the duration. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}} if successful, otherwise \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}} on error
\end{DoxyReturn}
\begin{DoxyNote}{Note}
It is not possible to modify messages that exist in libC\textquotesingle{}s {\ttfamily errno.\+h}, such as {\ttfamily E\+N\+O\+M\+EM} or {\ttfamily E\+B\+A\+DF}.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Error__Group_gacd6991f1ce57f853ddb19f32bb4aad38}{eina\+\_\+error\+\_\+msg\+\_\+register()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eina__Error__Group_gae0683831c4f8eebfdcb4f3cf1aef7052}\label{group__Eina__Error__Group_gae0683831c4f8eebfdcb4f3cf1aef7052}} 
\index{Error@{Error}!eina\+\_\+error\+\_\+get@{eina\+\_\+error\+\_\+get}}
\index{eina\+\_\+error\+\_\+get@{eina\+\_\+error\+\_\+get}!Error@{Error}}
\subsubsection{\texorpdfstring{eina\+\_\+error\+\_\+get()}{eina\_error\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} eina\+\_\+error\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Returns the last set error. 

This function returns the last error set by \mbox{\hyperlink{group__Eina__Error__Group_ga80a8249f135460d4e07ebfe3f0a7bad1}{eina\+\_\+error\+\_\+set()}}. The description of the message is returned by \mbox{\hyperlink{group__Eina__Error__Group_ga3402bc58a9f854391eb35fa7650edda5}{eina\+\_\+error\+\_\+msg\+\_\+get()}}.

\begin{DoxyReturn}{Returns}
The last error or 0 (\mbox{\hyperlink{group__Eina__Error__Group_ga637bff52ecef75ad46993950450347ae}{E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR}}).
\end{DoxyReturn}
\begin{DoxyNote}{Note}
This function is thread safe 
\end{DoxyNote}
\begin{DoxySince}{Since}
1.\+10, but slower to use. 
\end{DoxySince}


References eina\+\_\+main\+\_\+loop\+\_\+is(), and eina\+\_\+tls\+\_\+get().



Referenced by efl\+::eina\+::get\+\_\+error\+\_\+code(), efl\+::eina\+::get\+\_\+error\+\_\+code\+\_\+enum(), and efl\+::eina\+::get\+\_\+error\+\_\+condition().

\mbox{\Hypertarget{group__Eina__Error__Group_ga80a8249f135460d4e07ebfe3f0a7bad1}\label{group__Eina__Error__Group_ga80a8249f135460d4e07ebfe3f0a7bad1}} 
\index{Error@{Error}!eina\+\_\+error\+\_\+set@{eina\+\_\+error\+\_\+set}}
\index{eina\+\_\+error\+\_\+set@{eina\+\_\+error\+\_\+set}!Error@{Error}}
\subsubsection{\texorpdfstring{eina\+\_\+error\+\_\+set()}{eina\_error\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void eina\+\_\+error\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}}}]{err }\end{DoxyParamCaption})}



Sets the last error. 

This function sets the last error identifier. The last error can be retrieved by \mbox{\hyperlink{group__Eina__Error__Group_gae0683831c4f8eebfdcb4f3cf1aef7052}{eina\+\_\+error\+\_\+get()}}.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em err} & The error identifier\\
\hline
\end{DoxyParams}
\begin{DoxyNote}{Note}
This is also used to clear previous errors, in which case {\ttfamily err} should be {\ttfamily 0} (\mbox{\hyperlink{group__Eina__Error__Group_ga637bff52ecef75ad46993950450347ae}{E\+I\+N\+A\+\_\+\+E\+R\+R\+O\+R\+\_\+\+N\+O\+\_\+\+E\+R\+R\+OR}}).

This function is thread safe 
\end{DoxyNote}
\begin{DoxySince}{Since}
1.\+10, but slower to use. 
\end{DoxySince}


References eina\+\_\+main\+\_\+loop\+\_\+is(), and eina\+\_\+tls\+\_\+set().



Referenced by \+\_\+eina\+\_\+safety\+\_\+error(), edje\+\_\+edit\+\_\+state\+\_\+image\+\_\+border\+\_\+fill\+\_\+set(), edje\+\_\+edit\+\_\+state\+\_\+image\+\_\+border\+\_\+set(), edje\+\_\+edit\+\_\+state\+\_\+image\+\_\+set(), edje\+\_\+edit\+\_\+state\+\_\+vector\+\_\+set(), efl\+::eina\+::get\+\_\+error\+\_\+code(), efl\+::eina\+::get\+\_\+error\+\_\+condition(), and efl\+::eina\+::set\+\_\+error\+\_\+code().

\mbox{\Hypertarget{group__Eina__Error__Group_ga3402bc58a9f854391eb35fa7650edda5}\label{group__Eina__Error__Group_ga3402bc58a9f854391eb35fa7650edda5}} 
\index{Error@{Error}!eina\+\_\+error\+\_\+msg\+\_\+get@{eina\+\_\+error\+\_\+msg\+\_\+get}}
\index{eina\+\_\+error\+\_\+msg\+\_\+get@{eina\+\_\+error\+\_\+msg\+\_\+get}!Error@{Error}}
\subsubsection{\texorpdfstring{eina\+\_\+error\+\_\+msg\+\_\+get()}{eina\_error\_msg\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} const char$\ast$ eina\+\_\+error\+\_\+msg\+\_\+get (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}}}]{error }\end{DoxyParamCaption})}



Returns the description of the given error number. 

This function returns the description of an error that has been registered by \mbox{\hyperlink{group__Eina__Error__Group_gacd6991f1ce57f853ddb19f32bb4aad38}{eina\+\_\+error\+\_\+msg\+\_\+register()}}. If an incorrect error is given, then {\ttfamily N\+U\+LL} is returned. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em error} & The error number \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The description of the error 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+L\+O\+C\+K\+\_\+\+S\+U\+C\+C\+E\+ED, and eina\+\_\+spinlock\+\_\+take().



Referenced by ecore\+\_\+ipc\+\_\+server\+\_\+send(), and efl\+::eina\+::error\+\_\+category\+::message().

\mbox{\Hypertarget{group__Eina__Error__Group_gaa1fe233ecb39f5f00bdd1f1a6f3c5a83}\label{group__Eina__Error__Group_gaa1fe233ecb39f5f00bdd1f1a6f3c5a83}} 
\index{Error@{Error}!eina\+\_\+error\+\_\+find@{eina\+\_\+error\+\_\+find}}
\index{eina\+\_\+error\+\_\+find@{eina\+\_\+error\+\_\+find}!Error@{Error}}
\subsubsection{\texorpdfstring{eina\+\_\+error\+\_\+find()}{eina\_error\_find()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} eina\+\_\+error\+\_\+find (\begin{DoxyParamCaption}\item[{const char $\ast$}]{msg }\end{DoxyParamCaption})}



Finds the \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} corresponding to a message string. 

This function attempts to match {\ttfamily msg} with its corresponding \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} value. If no such value is found, {\ttfamily 0} is returned.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em msg} & The error message string to match (N\+OT {\ttfamily N\+U\+LL}) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} matching {\ttfamily msg}, otherwise {\ttfamily 0} on failure
\end{DoxyReturn}
\begin{DoxyNote}{Note}
this function only works for explicitly registered errors such as the messages given to \mbox{\hyperlink{group__Eina__Error__Group_gacd6991f1ce57f853ddb19f32bb4aad38}{eina\+\_\+error\+\_\+msg\+\_\+register()}}, \mbox{\hyperlink{group__Eina__Error__Group_ga004c7ceb7103cd5a698247ae3eb4578a}{eina\+\_\+error\+\_\+msg\+\_\+static\+\_\+register()}} or modified with \mbox{\hyperlink{group__Eina__Error__Group_ga79082e98c20137de7603f5697d581321}{eina\+\_\+error\+\_\+msg\+\_\+modify()}}. 
\end{DoxyNote}
