\hypertarget{group__Eo}{}\section{Eo}
\label{group__Eo}\index{Eo@{Eo}}


Generic object system.  


\subsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eo__Debug__Information}{Eo\textquotesingle{}s Debug information helper.}}
\item 
\mbox{\hyperlink{group__Efl__Events}{Eo\textquotesingle{}s Event Handling}}
\item 
\mbox{\hyperlink{group__Efl__Class}{Efl Class}}
\item 
\mbox{\hyperlink{group__Efl__Class__Class}{Eo\textquotesingle{}s Class class.}}
\item 
\mbox{\hyperlink{group__Efl__Class__Base}{Eo\textquotesingle{}s Base class.}}
\end{DoxyCompactItemize}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \mbox{\hyperlink{struct__Efl__Callback__Array__Item}{\+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}}
\begin{DoxyCompactList}\small\item\em An item in an array of callback desc/func. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Efl__Callback__Array__Item__Full}{\+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+\_\+\+Full}}
\begin{DoxyCompactList}\small\item\em An item provided by E\+F\+L\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+A\+D\+D/\+E\+F\+L\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+EL. \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{\+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}}
\begin{DoxyCompactList}\small\item\em A structure with callbacks to be used by \mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc()}} and \mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array()}} \end{DoxyCompactList}\item 
struct \mbox{\hyperlink{struct__Efl__Object__Op__Call__Data}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data}}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eo_gad70748e0c6ae9b6d4e2169faa81925cb}\label{group__Eo_gad70748e0c6ae9b6d4e2169faa81925cb}} 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+E\+O\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+PE}
\item 
\mbox{\Hypertarget{group__Eo_gaf7310b30a0004e246ee51a916237d5c8}\label{group__Eo_gaf7310b30a0004e246ee51a916237d5c8}} 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+E\+O\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+PE}
\item 
\mbox{\Hypertarget{group__Eo_ga2bf694c3a95bfdc8e23b7ca6b86e82e6}\label{group__Eo_ga2bf694c3a95bfdc8e23b7ca6b86e82e6}} 
\#define {\bfseries E\+O\+\_\+\+C\+L\+A\+SS}~E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+C\+L\+A\+SS
\item 
\#define \mbox{\hyperlink{group__Eo_ga52514fb91efd9eb019c3e97248058f26}{efl\+\_\+future\+\_\+cb}}(\+\_\+eo, ...)~\mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc}}(\+\_\+eo, (\mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}})\{\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+\})
\begin{DoxyCompactList}\small\item\em Syntax suger over \mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc()}} \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_ga75435139c37594e8c639ad37e497b319}{efl\+\_\+future\+\_\+\+Eina\+\_\+\+Future\+X\+X\+X\+\_\+then}}(\+\_\+eo,  \+\_\+future, ...)~\mbox{\hyperlink{group__Eina__Future_gae4c1896c7eb8b40933c7b0640c881f33}{eina\+\_\+future\+\_\+then\+\_\+from\+\_\+desc}}(\+\_\+future, \mbox{\hyperlink{group__Eo_ga52514fb91efd9eb019c3e97248058f26}{efl\+\_\+future\+\_\+cb}}(\+\_\+eo, \#\# \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+))
\begin{DoxyCompactList}\small\item\em Syntax sugar over \mbox{\hyperlink{group__Eina__Future_gae4c1896c7eb8b40933c7b0640c881f33}{eina\+\_\+future\+\_\+then\+\_\+from\+\_\+desc()}} and \mbox{\hyperlink{group__Eo_ga52514fb91efd9eb019c3e97248058f26}{efl\+\_\+future\+\_\+cb()}}. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_gae7a670d93ca8018f237dbfb91c67f100}{efl\+\_\+future\+\_\+chain}}(\+\_\+eo,  \+\_\+prev, ...)~\mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array}}(\+\_\+eo, \+\_\+prev, (\mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}} \mbox{[}$\,$\mbox{]})\{\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+, \{N\+U\+LL, N\+U\+LL, N\+U\+LL, N\+U\+LL, N\+U\+LL\}\})
\begin{DoxyCompactList}\small\item\em Syntax suger over \mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array()}} \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga324b815f591bae754277029f668fd409}\label{group__Eo_ga324b815f591bae754277029f668fd409}} 
\#define \mbox{\hyperlink{group__Eo_ga324b815f591bae754277029f668fd409}{E\+F\+L\+\_\+\+N\+O\+OP}}~((\mbox{\hyperlink{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}{Efl\+\_\+\+Object\+\_\+\+Op}}) 0)
\begin{DoxyCompactList}\small\item\em A special \mbox{\hyperlink{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}{Efl\+\_\+\+Object\+\_\+\+Op}} meaning \char`\"{}\+No operation\char`\"{}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga703ff871eed20942c2b745ab3ca03fbb}\label{group__Eo_ga703ff871eed20942c2b745ab3ca03fbb}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL}(...)~\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+
\item 
\mbox{\Hypertarget{group__Eo_ga9d6a0ed0971d59259a2b5a4504aecbd7}\label{group__Eo_ga9d6a0ed0971d59259a2b5a4504aecbd7}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+F\+U\+NC}(Name)~((const void $\ast$) Name)
\item 
\mbox{\Hypertarget{group__Eo_ga92c6bc59d10fb16d757b31ed0cd5c43b}\label{group__Eo_ga92c6bc59d10fb16d757b31ed0cd5c43b}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+T\+LS}~\+\_\+\+\_\+thread
\item 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP}(Obj,  Name,  Def\+Ret)
\item 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+E\+ND}(Obj,  Name,  Def\+Ret,  Error\+Case)
\item 
\mbox{\Hypertarget{group__Eo_gaf3f1f410d8cdd9969736c2d590361836}\label{group__Eo_gaf3f1f410d8cdd9969736c2d590361836}} 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+A\+P\+I\+\_\+\+B\+E\+F\+O\+R\+E\+\_\+\+H\+O\+OK}
\item 
\mbox{\Hypertarget{group__Eo_ga5d3c7a1ee16ac775bb720c5793ea2aef}\label{group__Eo_ga5d3c7a1ee16ac775bb720c5793ea2aef}} 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+A\+P\+I\+\_\+\+A\+F\+T\+E\+R\+\_\+\+H\+O\+OK}
\item 
\mbox{\Hypertarget{group__Eo_gaf9d00170b5f3c389b313f3b98ab6317c}\label{group__Eo_gaf9d00170b5f3c389b313f3b98ab6317c}} 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+A\+P\+I\+\_\+\+C\+A\+L\+L\+\_\+\+H\+O\+OK}(x)~x
\item 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}(Name,  Obj\+Type,  Ret,  Def\+Ret,  Error\+Case)
\item 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}(Name,  Obj\+Type,  Error\+Case)
\item 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}(Name,  Obj\+Type,  Ret,  Def\+Ret,  Error\+Case,  Arguments, ...)
\item 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}(Name,  Obj\+Type,  Error\+Case,  Arguments, ...)
\item 
\mbox{\Hypertarget{group__Eo_ga0f438bcc227c4495851e0237fb1cbec0}\label{group__Eo_ga0f438bcc227c4495851e0237fb1cbec0}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}(Name,  Ret,  Def\+Ret)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(Name, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Ret, Def\+Ret, )
\item 
\mbox{\Hypertarget{group__Eo_gacc68e8fc0469735635b085fd0dc0cc2d}\label{group__Eo_gacc68e8fc0469735635b085fd0dc0cc2d}} 
\#define {\bfseries E\+F\+L\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}(Name)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(Name, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, )
\item 
\mbox{\Hypertarget{group__Eo_ga0539c7fe60cc735be3053b938a5b82f7}\label{group__Eo_ga0539c7fe60cc735be3053b938a5b82f7}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}(Name,  Ret,  Def\+Ret,  Arguments, ...)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(Name, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Ret, Def\+Ret, , E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL(Arguments), \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\item 
\mbox{\Hypertarget{group__Eo_gaf88fee17590a4824c514ca512ea5c302}\label{group__Eo_gaf88fee17590a4824c514ca512ea5c302}} 
\#define {\bfseries E\+F\+L\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}(Name,  Arguments, ...)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(Name, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, , E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL(Arguments), \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\item 
\mbox{\Hypertarget{group__Eo_gab3205816d57ada00338118f637e2e22f}\label{group__Eo_gab3205816d57ada00338118f637e2e22f}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+\_\+\+C\+O\+N\+ST}(Name,  Ret,  Def\+Ret)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(Name, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Ret, Def\+Ret, )
\item 
\mbox{\Hypertarget{group__Eo_gae40e37f3acec03cfd18bb552b4d1e84e}\label{group__Eo_gae40e37f3acec03cfd18bb552b4d1e84e}} 
\#define {\bfseries E\+F\+L\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+\_\+\+C\+O\+N\+ST}(Name)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(Name, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, )
\item 
\mbox{\Hypertarget{group__Eo_ga2beccf59f6dc1546cba3131a6e422291}\label{group__Eo_ga2beccf59f6dc1546cba3131a6e422291}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V\+\_\+\+C\+O\+N\+ST}(Name,  Ret,  Def\+Ret,  Arguments, ...)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(Name, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Ret, Def\+Ret, , E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL(Arguments), \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\item 
\mbox{\Hypertarget{group__Eo_gac3141577a019e0cd9f31538221e0179d}\label{group__Eo_gac3141577a019e0cd9f31538221e0179d}} 
\#define {\bfseries E\+F\+L\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V\+\_\+\+C\+O\+N\+ST}(Name,  Arguments, ...)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(Name, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, , E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL(Arguments), \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\item 
\mbox{\Hypertarget{group__Eo_gac2b5697d66deda8701b52e73fbcf38da}\label{group__Eo_gac2b5697d66deda8701b52e73fbcf38da}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+\_\+\+F\+A\+L\+L\+B\+A\+CK}(Name,  Ret,  Def\+Ret,  Fallback\+Call)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(Name, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Ret, Def\+Ret, Fallback\+Call)
\item 
\mbox{\Hypertarget{group__Eo_ga8da42db1111c8d25569811d4f32245df}\label{group__Eo_ga8da42db1111c8d25569811d4f32245df}} 
\#define {\bfseries E\+F\+L\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+\_\+\+F\+A\+L\+L\+B\+A\+CK}(Name,  Fallback\+Call)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(Name, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Fallback\+Call)
\item 
\mbox{\Hypertarget{group__Eo_ga81af434a687d265248d8e8c11a6d9d8f}\label{group__Eo_ga81af434a687d265248d8e8c11a6d9d8f}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V\+\_\+\+F\+A\+L\+L\+B\+A\+CK}(Name,  Ret,  Def\+Ret,  Fallback\+Call,  Arguments, ...)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(Name, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Ret, Def\+Ret, Fallback\+Call, E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL(Arguments), \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\item 
\mbox{\Hypertarget{group__Eo_gab6fb60a783137ab8caad0ca030434b00}\label{group__Eo_gab6fb60a783137ab8caad0ca030434b00}} 
\#define {\bfseries E\+F\+L\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V\+\_\+\+F\+A\+L\+L\+B\+A\+CK}(Name,  Fallback\+Call,  Arguments, ...)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(Name, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Fallback\+Call, E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL(Arguments), \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\item 
\mbox{\Hypertarget{group__Eo_gac7d24a775950e334e09a1c475f963296}\label{group__Eo_gac7d24a775950e334e09a1c475f963296}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+\_\+\+C\+O\+N\+S\+T\+\_\+\+F\+A\+L\+L\+B\+A\+CK}(Name,  Ret,  Def\+Ret,  Fallback\+Call)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(Name, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Ret, Def\+Ret, Fallback\+Call)
\item 
\mbox{\Hypertarget{group__Eo_ga14d6526a60a364e4264ed1acdd2a4a26}\label{group__Eo_ga14d6526a60a364e4264ed1acdd2a4a26}} 
\#define {\bfseries E\+F\+L\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+\_\+\+C\+O\+N\+S\+T\+\_\+\+F\+A\+L\+L\+B\+A\+CK}(Name,  Fallback\+Call)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(Name, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Fallback\+Call)
\item 
\mbox{\Hypertarget{group__Eo_ga13b4eec55a8836a791a4c85561db92d4}\label{group__Eo_ga13b4eec55a8836a791a4c85561db92d4}} 
\#define {\bfseries E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V\+\_\+\+C\+O\+N\+S\+T\+\_\+\+F\+A\+L\+L\+B\+A\+CK}(Name,  Ret,  Def\+Ret,  Fallback\+Call,  Arguments, ...)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(Name, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Ret, Def\+Ret, Fallback\+Call, E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL(Arguments), \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\item 
\mbox{\Hypertarget{group__Eo_gaab6bf245acf7d977da67321092f918f3}\label{group__Eo_gaab6bf245acf7d977da67321092f918f3}} 
\#define {\bfseries E\+F\+L\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V\+\_\+\+C\+O\+N\+S\+T\+\_\+\+F\+A\+L\+L\+B\+A\+CK}(Name,  Fallback\+Call,  Arguments, ...)~\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(Name, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$, Fallback\+Call, E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL(Arguments), \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\item 
\mbox{\Hypertarget{group__Eo_ga24d03449c3fee91943304377184d99cc}\label{group__Eo_ga24d03449c3fee91943304377184d99cc}} 
\#define {\bfseries \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+RY}(a)~(void$\ast$)a
\item 
\mbox{\Hypertarget{group__Eo_ga91ae6076f467d5f209522c247171121d}\label{group__Eo_ga91ae6076f467d5f209522c247171121d}} 
\#define {\bfseries E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+O\+P\+\_\+\+F\+U\+NC}(\+\_\+api,  \+\_\+private)~\{ \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+RY(\+\_\+api), (void$\ast$)\+\_\+private \}
\item 
\mbox{\Hypertarget{group__Eo_ga13047fe89ab926e37f46d893752ad92a}\label{group__Eo_ga13047fe89ab926e37f46d893752ad92a}} 
\#define {\bfseries efl\+\_\+added}~\+\_\+efl\+\_\+added\+\_\+get()
\item 
\#define {\bfseries \+\_\+efl\+\_\+add\+\_\+common}(klass,  parent,  is\+\_\+ref, ...)
\item 
\#define \mbox{\hyperlink{group__Eo_ga663b4b6d84c39cd08874af5094d96d67}{efl\+\_\+add}}(klass,  parent, ...)~\+\_\+efl\+\_\+add\+\_\+common(klass, parent, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}}, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\begin{DoxyCompactList}\small\item\em Create a new object and add it to an existing parent object. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_ga27973a0cd41b6e13ef18aff46ed91bf8}{efl\+\_\+add\+\_\+ref}}(klass,  parent, ...)~\+\_\+efl\+\_\+add\+\_\+common(klass, parent, \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}}, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\begin{DoxyCompactList}\small\item\em Create a new object, add it to an existing parent object and return an extra reference for further manipulation. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_ga5d7c7f0cce250669df72acb60ce91c56}{efl\+\_\+new}}(klass, ...)~\mbox{\hyperlink{group__Eo_ga27973a0cd41b6e13ef18aff46ed91bf8}{efl\+\_\+add\+\_\+ref}}(klass, N\+U\+LL, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\begin{DoxyCompactList}\small\item\em Create a new object. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_ga3725475fc57eb899484e7e3bc7f8abb8}{efl\+\_\+data\+\_\+xref}}(obj,  klass,  ref\+\_\+obj)~\mbox{\hyperlink{group__Eo_ga88cf6b45917972ce49f300a046273127}{efl\+\_\+data\+\_\+xref\+\_\+internal}}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, klass, ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Use this macro if you want to associate a referencer object. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_ga2171db2f78e1891a7a590a2236f16e54}{efl\+\_\+data\+\_\+ref}}(obj,  klass)~\mbox{\hyperlink{group__Eo_ga88cf6b45917972ce49f300a046273127}{efl\+\_\+data\+\_\+xref\+\_\+internal}}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, klass, (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$)obj)
\begin{DoxyCompactList}\small\item\em Use this macro if you don\textquotesingle{}t want to associate a referencer object. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_ga2b74456d51a6bb0e119d2e63de2782d5}{efl\+\_\+data\+\_\+xunref}}(obj,  data,  ref\+\_\+obj)~\mbox{\hyperlink{group__Eo_ga73887acd3ce2f7c82d027c2ad46809a0}{efl\+\_\+data\+\_\+xunref\+\_\+internal}}(obj, data, ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Use this function if you used efl\+\_\+data\+\_\+xref to reference the data. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_gaa4eda33bdeb025571fb664f0240d7f75}{efl\+\_\+data\+\_\+unref}}(obj,  data)~\mbox{\hyperlink{group__Eo_ga73887acd3ce2f7c82d027c2ad46809a0}{efl\+\_\+data\+\_\+xunref\+\_\+internal}}(obj, data, obj)
\begin{DoxyCompactList}\small\item\em Use this function if you used efl\+\_\+data\+\_\+ref to reference the data. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_ga68644534eb49539ab5c0d8e937482385}{efl\+\_\+xref}}(obj,  ref\+\_\+obj)~\mbox{\hyperlink{group__Eo_ga71c49a9a9878a3f60e77c071a929d493}{efl\+\_\+xref\+\_\+internal}}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Convenience macro around \mbox{\hyperlink{group__Eo_ga71c49a9a9878a3f60e77c071a929d493}{efl\+\_\+xref\+\_\+internal()}} \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga3db3556eec8ef18cb8ddb43816974ac8}\label{group__Eo_ga3db3556eec8ef18cb8ddb43816974ac8}} 
\#define {\bfseries E\+A\+PI}
\item 
\mbox{\Hypertarget{group__Eo_ga3db3556eec8ef18cb8ddb43816974ac8}\label{group__Eo_ga3db3556eec8ef18cb8ddb43816974ac8}} 
\#define {\bfseries E\+A\+PI}
\item 
\mbox{\Hypertarget{group__Eo_gaecd392301b334b78208fd67cc54910ff}\label{group__Eo_gaecd392301b334b78208fd67cc54910ff}} 
\#define {\bfseries E\+O\+A\+PI}~\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} E\+A\+P\+I\+\_\+\+W\+E\+AK
\item 
\mbox{\Hypertarget{group__Eo_gaecd392301b334b78208fd67cc54910ff}\label{group__Eo_gaecd392301b334b78208fd67cc54910ff}} 
\#define {\bfseries E\+O\+A\+PI}
\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eo_gae92542aa4e1cf1e19a5e1930510dfeac}\label{group__Eo_gae92542aa4e1cf1e19a5e1930510dfeac}} 
typedef struct \+\_\+\+Eo\+\_\+\+Object {\bfseries \+\_\+\+Eo\+\_\+\+Object}
\item 
\mbox{\Hypertarget{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}\label{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}} 
typedef struct \+\_\+\+Eo\+\_\+\+Opaque \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}}
\begin{DoxyCompactList}\small\item\em The basic Object type. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}\label{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}} 
typedef \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}}
\begin{DoxyCompactList}\small\item\em The basic class type -\/ should be removed, for compatibility reasons. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga8f2de1219256fde8c1ffd30da1a4ab13}\label{group__Eo_ga8f2de1219256fde8c1ffd30da1a4ab13}} 
typedef \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} {\bfseries Efl\+\_\+\+Object}
\item 
typedef void($\ast$ \mbox{\hyperlink{group__Eo_gab02fa807a9c63bbc357b5abf0e52893a}{Efl\+\_\+\+Del\+\_\+\+Intercept}}) (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj\+\_\+id)
\begin{DoxyCompactList}\small\item\em A function to be called on object deletion/destruction instead of normal destruction taking place. \end{DoxyCompactList}\item 
typedef void($\ast$ \mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}}) (void $\ast$data, const Efl\+\_\+\+Event $\ast$event)
\begin{DoxyCompactList}\small\item\em An event callback prototype. \end{DoxyCompactList}\item 
typedef short \mbox{\hyperlink{group__Eo_ga11151488ded35583fc2c52918251de98}{Efl\+\_\+\+Callback\+\_\+\+Priority}}
\begin{DoxyCompactList}\small\item\em Callback priority value. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga0c1473d9ef4c82c455408cad610cb17a}\label{group__Eo_ga0c1473d9ef4c82c455408cad610cb17a}} 
typedef struct \mbox{\hyperlink{struct__Efl__Callback__Array__Item}{\+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}} {\bfseries Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}
\item 
\mbox{\Hypertarget{group__Eo_gaf3cddcd6a7fdff1c90c722d5bd170c65}\label{group__Eo_gaf3cddcd6a7fdff1c90c722d5bd170c65}} 
typedef struct \mbox{\hyperlink{struct__Efl__Callback__Array__Item__Full}{\+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+\_\+\+Full}} {\bfseries Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+\_\+\+Full}
\item 
\mbox{\Hypertarget{group__Eo_gad5e2f2dcc94ee4ae8c54ffb579b69f19}\label{group__Eo_gad5e2f2dcc94ee4ae8c54ffb579b69f19}} 
typedef struct \mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{\+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}} {\bfseries Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}
\item 
\mbox{\Hypertarget{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}\label{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}} 
typedef unsigned int \mbox{\hyperlink{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}{Efl\+\_\+\+Object\+\_\+\+Op}}
\begin{DoxyCompactList}\small\item\em The Eo operation type id. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga14259b75d4c7701b5d5edcee323a10fc}\label{group__Eo_ga14259b75d4c7701b5d5edcee323a10fc}} 
typedef struct \+\_\+\+Efl\+\_\+\+Domain\+\_\+\+Data \mbox{\hyperlink{group__Eo_ga14259b75d4c7701b5d5edcee323a10fc}{Efl\+\_\+\+Domain\+\_\+\+Data}}
\begin{DoxyCompactList}\small\item\em An opaque handle for private domain data. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga46f820a3b8841379676d279496a0086f}\label{group__Eo_ga46f820a3b8841379676d279496a0086f}} 
typedef struct \mbox{\hyperlink{struct__Efl__Object__Op__Call__Data}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data}} {\bfseries Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data}
\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} \{ \newline
\mbox{\hyperlink{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06ac426be57a3f759b2dc6d41a9e4b42d1f}{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+I\+N\+V\+A\+L\+ID}} = -\/1, 
\newline
\mbox{\hyperlink{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06a93c0ca2f31ff43cee6d9ce0825e219ca}{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN}} = 0, 
\newline
\mbox{\hyperlink{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06ab43a8f431d83bf31b763d44600279e67}{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED}} = 1, 
\newline
\mbox{\hyperlink{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06ac083adfe73c1731f991ab2fc6b06f87f}{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+T\+H\+R\+E\+AD}}
 \}
\begin{DoxyCompactList}\small\item\em The virtual allocation domain where an object lives. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_gaf3a8f41bf1f61462c2ac61580e944ce8}{efl\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const Efl\+\_\+\+Event\+\_\+\+Description $\ast$desc, \mbox{\hyperlink{group__Eo_ga11151488ded35583fc2c52918251de98}{Efl\+\_\+\+Callback\+\_\+\+Priority}} priority, \mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}} cb, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Add a callback for an event with a specific priority. \end{DoxyCompactList}\item 
E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga43474977cf73249aa96c32539fe10d8c}{efl\+\_\+event\+\_\+callback\+\_\+del}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const Efl\+\_\+\+Event\+\_\+\+Description $\ast$desc, \mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}} func, const void $\ast$user\+\_\+data)
\begin{DoxyCompactList}\small\item\em Delete a callback with a specific data associated with it for an event. \end{DoxyCompactList}\item 
E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga4d3c54c354c8c254913f5241ffa181a9}{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+priority\+\_\+add}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{struct__Efl__Callback__Array__Item}{Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}} $\ast$array, \mbox{\hyperlink{group__Eo_ga11151488ded35583fc2c52918251de98}{Efl\+\_\+\+Callback\+\_\+\+Priority}} priority, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Add an array of callbacks created by \mbox{\hyperlink{group__Efl__Events_ga0e3e7266e176a957add323bd6ffabfc2}{E\+F\+L\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+S\+\_\+\+A\+R\+R\+A\+Y\+\_\+\+D\+E\+F\+I\+NE}} for an event with a specific priority. \end{DoxyCompactList}\item 
E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga57db18b24ce0093088d7300e385a46c6}{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+del}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{struct__Efl__Callback__Array__Item}{Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}} $\ast$array, const void $\ast$user\+\_\+data)
\begin{DoxyCompactList}\small\item\em Del a callback array with a specific data associated to it for an event. \end{DoxyCompactList}\item 
E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga43d3ed553f9c7c4d39ad5fa5e7c21c32}{efl\+\_\+event\+\_\+callback\+\_\+call}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const Efl\+\_\+\+Event\+\_\+\+Description $\ast$desc, void $\ast$event\+\_\+info)
\begin{DoxyCompactList}\small\item\em Call the callbacks for an event of an object. \end{DoxyCompactList}\item 
E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga4290ecd94b14dabc4e36b4800ca464dc}{efl\+\_\+event\+\_\+callback\+\_\+legacy\+\_\+call}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const Efl\+\_\+\+Event\+\_\+\+Description $\ast$desc, void $\ast$event\+\_\+info)
\begin{DoxyCompactList}\small\item\em Call the callbacks for an event of an object. \end{DoxyCompactList}\item 
E\+O\+A\+PI \mbox{\hyperlink{struct__Eina__Future__Desc}{Eina\+\_\+\+Future\+\_\+\+Desc}} \mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}} desc)
\begin{DoxyCompactList}\small\item\em Creates an Eina\+\_\+\+Future\+\_\+\+Desc for an EO object. \end{DoxyCompactList}\item 
E\+O\+A\+PI Eina\+\_\+\+Future $\ast$ \mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, Eina\+\_\+\+Future $\ast$prev, const \mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}} descs\mbox{[}$\,$\mbox{]})
\begin{DoxyCompactList}\small\item\em Creates a Future chain based on \#\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_gaf39c3ceffae725faca68146fa293eafd}{efl\+\_\+object\+\_\+init}} (void)
\begin{DoxyCompactList}\small\item\em Init the eo subsystem. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga3af621f7c79b3a99979c81f70e4c4dc3}{efl\+\_\+object\+\_\+shutdown}} (void)
\begin{DoxyCompactList}\small\item\em Shutdown the eo subsystem. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} \mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get}} (void)
\begin{DoxyCompactList}\small\item\em Get the native domain for the current thread. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga09b2a75ac085db673a85d501c08947a8}{efl\+\_\+domain\+\_\+switch}} (\mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} domain)
\begin{DoxyCompactList}\small\item\em Switch the native domain for the current thread. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} \mbox{\hyperlink{group__Eo_gafb7e487fe2d54a094d486c205a9fbdb7}{efl\+\_\+domain\+\_\+current\+\_\+get}} (void)
\begin{DoxyCompactList}\small\item\em Get the current domain used for allocating new objects. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga112b0593601059f9fecb536884065e58}{efl\+\_\+domain\+\_\+current\+\_\+set}} (\mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} domain)
\begin{DoxyCompactList}\small\item\em Set the current domain used for allocating new objects. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga37042bd86adf97657661e395d3ddfef4}{efl\+\_\+domain\+\_\+current\+\_\+push}} (\mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} domain)
\begin{DoxyCompactList}\small\item\em Push a new domain onto the domain stack. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eo_gaec41ad5374ab0af681828799f6920235}{efl\+\_\+domain\+\_\+current\+\_\+pop}} (void)
\begin{DoxyCompactList}\small\item\em Pop a previously pushed domain from the domain stack. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga14259b75d4c7701b5d5edcee323a10fc}{Efl\+\_\+\+Domain\+\_\+\+Data}} $\ast$ \mbox{\hyperlink{group__Eo_ga568c543b5265e8805de7a8b5081f1873}{efl\+\_\+domain\+\_\+data\+\_\+get}} (void)
\begin{DoxyCompactList}\small\item\em Get an opaque handle to the local native domain eoid data. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} \mbox{\hyperlink{group__Eo_gac840ae91207648655fe5f092f779376a}{efl\+\_\+domain\+\_\+data\+\_\+adopt}} (\mbox{\hyperlink{group__Eo_ga14259b75d4c7701b5d5edcee323a10fc}{Efl\+\_\+\+Domain\+\_\+\+Data}} $\ast$data\+\_\+in)
\begin{DoxyCompactList}\small\item\em Adopt a single extra domain to be the current domain. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_gac447e1d53336ef91e5af6eb4c953f425}{efl\+\_\+domain\+\_\+data\+\_\+return}} (\mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} domain)
\begin{DoxyCompactList}\small\item\em Return a domain to its original owning thread. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_gaab3fe10ab5ab1ee5521cf0f7745fef1d}{efl\+\_\+compatible}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj\+\_\+target)
\begin{DoxyCompactList}\small\item\em Check if 2 objects are compatible \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_gaa101cb55cf449e585f4b00b4df5d3e71}\label{group__Eo_gaa101cb55cf449e585f4b00b4df5d3e71}} 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}{Efl\+\_\+\+Object\+\_\+\+Op}} {\bfseries \+\_\+efl\+\_\+object\+\_\+api\+\_\+op\+\_\+id\+\_\+get} (const void $\ast$api\+\_\+func) \mbox{\hyperlink{group__Eina__Types__Group_gad5b2116495471db12a34bab9a34edfaa}{E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}}
\item 
\mbox{\Hypertarget{group__Eo_gab980bc6e3a083459e2382b068c71c7b0}\label{group__Eo_gab980bc6e3a083459e2382b068c71c7b0}} 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}{Efl\+\_\+\+Object\+\_\+\+Op}} {\bfseries \+\_\+efl\+\_\+object\+\_\+op\+\_\+api\+\_\+id\+\_\+get} (const void $\ast$api\+\_\+func, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$api\+\_\+func\+\_\+name, const char $\ast$file, int line)
\item 
\mbox{\Hypertarget{group__Eo_ga1f85a25b9eae3939ddbd46098b91b07a}\label{group__Eo_ga1f85a25b9eae3939ddbd46098b91b07a}} 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} {\bfseries \+\_\+efl\+\_\+object\+\_\+call\+\_\+resolve} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$func\+\_\+name, \mbox{\hyperlink{struct__Efl__Object__Op__Call__Data}{Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data}} $\ast$call, \mbox{\hyperlink{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}{Efl\+\_\+\+Object\+\_\+\+Op}} op, const char $\ast$file, int line)
\item 
\mbox{\Hypertarget{group__Eo_ga5f3399ec4f6f28fd848b5712936157dd}\label{group__Eo_ga5f3399ec4f6f28fd848b5712936157dd}} 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void {\bfseries \+\_\+efl\+\_\+object\+\_\+call\+\_\+end} (\mbox{\hyperlink{struct__Efl__Object__Op__Call__Data}{Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data}} $\ast$call)
\item 
\mbox{\Hypertarget{group__Eo_gafe687b44991e1c9371af3decfd7fe0f6}\label{group__Eo_gafe687b44991e1c9371af3decfd7fe0f6}} 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ {\bfseries \+\_\+efl\+\_\+add\+\_\+end} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} is\+\_\+ref, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} is\+\_\+fallback)
\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ \mbox{\hyperlink{group__Eo_ga0669903ef159417c78dd0b48c4c71517}{efl\+\_\+super}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$cur\+\_\+klass)
\begin{DoxyCompactList}\small\item\em Prepare a call to the parent class implementation of a function. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ \mbox{\hyperlink{group__Eo_ga0bb174743483f07a76b50eba04daf6fa}{efl\+\_\+cast}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$cur\+\_\+klass)
\begin{DoxyCompactList}\small\item\em Prepare a call to cast to a parent class implementation of a function. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$ \mbox{\hyperlink{group__Eo_ga49a6f50e0361e9d1975eb6e8bdd5b3c2}{efl\+\_\+class\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Gets the class of the object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga11a9c99bcf1a94692cd245943caf9557}\label{group__Eo_ga11a9c99bcf1a94692cd245943caf9557}} 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ {\bfseries \+\_\+efl\+\_\+added\+\_\+get} (void)
\item 
\mbox{\Hypertarget{group__Eo_ga0997712fc49c233a3ec3448a476dcdac}\label{group__Eo_ga0997712fc49c233a3ec3448a476dcdac}} 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ {\bfseries \+\_\+efl\+\_\+add\+\_\+internal\+\_\+start} (const char $\ast$file, int line, const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass\+\_\+id, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$parent, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} ref, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} is\+\_\+fallback)
\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eo_gab4ac68670242b467427ea24d4d6be1e2}{efl\+\_\+del}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Unrefs the object and reparents it to N\+U\+LL. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void $\ast$ \mbox{\hyperlink{group__Eo_ga5a2ee07b96ae3211f15bd7b0f3bc8ce5}{efl\+\_\+data\+\_\+scope\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em Get a pointer to the data of an object for a specific class. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void $\ast$ \mbox{\hyperlink{group__Eo_gae856071f9e8e3d064fab1a5673ee11f9}{efl\+\_\+data\+\_\+scope\+\_\+safe\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em Safely get a pointer to the data of an object for a specific class. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void $\ast$ \mbox{\hyperlink{group__Eo_ga88cf6b45917972ce49f300a046273127}{efl\+\_\+data\+\_\+xref\+\_\+internal}} (const char $\ast$file, int line, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Get a pointer to the data of an object for a specific class and increment the data reference count. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eo_ga73887acd3ce2f7c82d027c2ad46809a0}{efl\+\_\+data\+\_\+xunref\+\_\+internal}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, void $\ast$data, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Decrement the object data reference count by 1. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ \mbox{\hyperlink{group__Eo_gae5c8819ec60844eea61c3ed971bb6b5d}{efl\+\_\+ref}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Increment the object\textquotesingle{}s reference count by 1. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\+\_\+unref}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Decrement the object\textquotesingle{}s reference count by 1 and free it if needed. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} int \mbox{\hyperlink{group__Eo_ga2675f87cd4fe5db674bfd6c2bb4ebede}{efl\+\_\+ref\+\_\+count}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Return the ref count of the object passed. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eo_ga27ea7f6d04a3b552db03e5fc3814ff3d}{efl\+\_\+del\+\_\+intercept\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, \mbox{\hyperlink{group__Eo_gab02fa807a9c63bbc357b5abf0e52893a}{Efl\+\_\+\+Del\+\_\+\+Intercept}} del\+\_\+intercept\+\_\+func)
\begin{DoxyCompactList}\small\item\em Set a deletion interceptor function. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_gab02fa807a9c63bbc357b5abf0e52893a}{Efl\+\_\+\+Del\+\_\+\+Intercept}} \mbox{\hyperlink{group__Eo_ga0f64877264de9cc57b1032e3f0650e39}{efl\+\_\+del\+\_\+intercept\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Get the deletion interceptor function. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eo_gab1c87caaf6c192b1ef09c5057ec53592}{efl\+\_\+reuse}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Clears the object so it can be reused (for example in a cache). \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ \mbox{\hyperlink{group__Eo_ga71c49a9a9878a3f60e77c071a929d493}{efl\+\_\+xref\+\_\+internal}} (const char $\ast$file, int line, \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Increment the object\textquotesingle{}s reference count by 1 (and associate the ref with ref\+\_\+obj). \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eo_ga3cab9743014362a121533342f1ce9dcf}{efl\+\_\+xunref}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Decrement the object\textquotesingle{}s reference count by 1 and free it if needed. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Eo_ga84fef8e0a972d66374d38ec7fcf253d1}{efl\+\_\+wref\+\_\+add}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, Efl\+\_\+\+Object $\ast$$\ast$wref)
\begin{DoxyCompactList}\small\item\em Add a new weak reference to obj. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Eo_ga00d1e02482a74dbc5635edf3f9ef861e}{efl\+\_\+wref\+\_\+del}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, Efl\+\_\+\+Object $\ast$$\ast$wref)
\begin{DoxyCompactList}\small\item\em Delete the weak reference passed. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Eo_gad6745c23dad3578ff5df8b4498509cb1}{efl\+\_\+key\+\_\+data\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$key, const void $\ast$data)
\begin{DoxyCompactList}\small\item\em Generic data with string key on an object. \end{DoxyCompactList}\item 
E\+O\+A\+PI void $\ast$ \mbox{\hyperlink{group__Eo_gab88da320b2aa6d7db69a94cadf555707}{efl\+\_\+key\+\_\+data\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$key)
\begin{DoxyCompactList}\small\item\em Generic data with string key on an object. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Eo_gab7d84b328651123292053743f0039fae}{efl\+\_\+key\+\_\+ref\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$key, const Efl\+\_\+\+Object $\ast$objdata)
\begin{DoxyCompactList}\small\item\em Generic object reference with string key to object. \end{DoxyCompactList}\item 
E\+O\+A\+PI Efl\+\_\+\+Object $\ast$ \mbox{\hyperlink{group__Eo_ga6002db576de0da27695181e715dd5241}{efl\+\_\+key\+\_\+ref\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$key)
\begin{DoxyCompactList}\small\item\em Generic object reference with string key to object. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Eo_gac3132c3cad24edd19a15d89cf4430ab2}{efl\+\_\+key\+\_\+wref\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$key, const Efl\+\_\+\+Object $\ast$objdata)
\begin{DoxyCompactList}\small\item\em Generic weak object reference with string key to object. \end{DoxyCompactList}\item 
E\+O\+A\+PI Efl\+\_\+\+Object $\ast$ \mbox{\hyperlink{group__Eo_ga5875683acc519b9b00cb2297a2b0b086}{efl\+\_\+key\+\_\+wref\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$key)
\begin{DoxyCompactList}\small\item\em Generic weak object reference with string key to object. \end{DoxyCompactList}\item 
E\+O\+A\+PI void \mbox{\hyperlink{group__Eo_ga4aa22812f8b807cecb129a13bca1e0e3}{efl\+\_\+key\+\_\+value\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$key, \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$value)
\begin{DoxyCompactList}\small\item\em Value on with string key on the object. \end{DoxyCompactList}\item 
E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$ \mbox{\hyperlink{group__Eo_gab5d468271184556eb64c8c7326d622a0}{efl\+\_\+key\+\_\+value\+\_\+get}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, const char $\ast$key)
\begin{DoxyCompactList}\small\item\em Value on with string key on the object. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Eo_ga8d0ac6cdbfebb9cc6efc7e2fd1e7daae}{efl\+\_\+manual\+\_\+free\+\_\+set}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} manual\+\_\+free)
\begin{DoxyCompactList}\small\item\em Enable or disable the manual free feature. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga68f4d6a4d357d0521e46984a6edb296c}{efl\+\_\+manual\+\_\+free}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Frees the object. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga78cbe22590d5ab699314a75a36e50cc9}{efl\+\_\+destructed\+\_\+is}} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Checks if the object was already descructed (only relevant for manual\+\_\+free objects). \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} Eina\+\_\+\+Lock \mbox{\hyperlink{group__Eo_ga330cefab26ab90f1153459ab69ab41d8}{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}}
\begin{DoxyCompactList}\small\item\em This variable is used for locking purposes in the class\+\_\+get function defined in \mbox{\hyperlink{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}{E\+F\+L\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} unsigned int \mbox{\hyperlink{group__Eo_gaae670ec969c91058fba6351d20d53406}{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation}}
\begin{DoxyCompactList}\small\item\em This variable stores the current eo init generation. \end{DoxyCompactList}\item 
const Efl\+\_\+\+Event\+\_\+\+Description $\ast$ \mbox{\hyperlink{group__Eo_gae7c7ab42a04c67bac3cbe33e0cd46dc4}{\+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+::desc}}
\begin{DoxyCompactList}\small\item\em The event description. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}} \mbox{\hyperlink{group__Eo_ga45deafc2a9e98bae22672901e43d7228}{\+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+::func}}
\begin{DoxyCompactList}\small\item\em The callback function. \end{DoxyCompactList}\item 
const Efl\+\_\+\+Event\+\_\+\+Description $\ast$ \mbox{\hyperlink{group__Eo_gab347ee117d719efc85fa73e73f457324}{\+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+\_\+\+Full\+::desc}}
\begin{DoxyCompactList}\small\item\em The event description. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga6bad3e893d263df46ef70bb7faa8a07d}\label{group__Eo_ga6bad3e893d263df46ef70bb7faa8a07d}} 
\mbox{\hyperlink{group__Eo_ga11151488ded35583fc2c52918251de98}{Efl\+\_\+\+Callback\+\_\+\+Priority}} {\bfseries \+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+\_\+\+Full\+::priority}
\item 
\mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}} \mbox{\hyperlink{group__Eo_gaeb94c553ae7060a5c8c0f1a8a1c360c6}{\+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+\_\+\+Full\+::func}}
\begin{DoxyCompactList}\small\item\em $<$ The priorit of the event \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga558a8306f388b1c1f0c1aa3091ab38da}\label{group__Eo_ga558a8306f388b1c1f0c1aa3091ab38da}} 
void $\ast$ \mbox{\hyperlink{group__Eo_ga558a8306f388b1c1f0c1aa3091ab38da}{\+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+\_\+\+Full\+::user\+\_\+data}}
\begin{DoxyCompactList}\small\item\em The user data pointer to be passed to the func. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}}($\ast$ \mbox{\hyperlink{group__Eo_gab53eaacef28270e8713808448db4a963}{\+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::success}} )(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$o, const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} value)
\begin{DoxyCompactList}\small\item\em Called on success (value.\+type is not {\ttfamily E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+R\+R\+OR}). \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}}($\ast$ \mbox{\hyperlink{group__Eo_ga561558639d4370ec5c7e8ed999427fb7}{\+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::error}} )(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$o, \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} error)
\begin{DoxyCompactList}\small\item\em Called on error (value.\+type is {\ttfamily E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+R\+R\+OR}). \end{DoxyCompactList}\item 
void($\ast$ \mbox{\hyperlink{group__Eo_ga84a965881d88c8c87dc358a6b133f8a0}{\+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::free}} )(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$o, const Eina\+\_\+\+Future $\ast$dead\+\_\+future)
\begin{DoxyCompactList}\small\item\em Called on {\bfseries all} situations to notify future destruction. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__Eina__Value__Group_gaab67ab8bcd0624280c5276044b07e0d2}{Eina\+\_\+\+Value\+\_\+\+Type}} $\ast$ \mbox{\hyperlink{group__Eo_gad3340ef593d023d9c262f1c7f02afb2b}{\+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::success\+\_\+type}}
\begin{DoxyCompactList}\small\item\em If provided, then {\ttfamily success} will only be called if the value type matches the given pointer. \end{DoxyCompactList}\item 
Eina\+\_\+\+Future $\ast$$\ast$ \mbox{\hyperlink{group__Eo_ga80f8e59d86857d194aec94c6e237e86f}{\+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::storage}}
\begin{DoxyCompactList}\small\item\em This is used by Eo to cancel pending futures in case an Eo object is deleted. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}} $\ast$ \mbox{\hyperlink{group__Eo_ga9638b5c651f276943a8dd73ec30cacc2}{\+\_\+\+Efl\+\_\+\+Dbg\+\_\+\+Info\+::name}}
\begin{DoxyCompactList}\small\item\em The name of the part (stringshare). \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} \mbox{\hyperlink{group__Eo_ga1018685c3b73b765441c2229dfd77bc9}{\+\_\+\+Efl\+\_\+\+Dbg\+\_\+\+Info\+::value}}
\begin{DoxyCompactList}\small\item\em The value. \end{DoxyCompactList}\item 
void $\ast$ \mbox{\hyperlink{group__Eo_gabd411277350010db34d6b6095ef81f8e}{\+\_\+\+Efl\+\_\+\+Op\+\_\+\+Description\+::api\+\_\+func}}
\begin{DoxyCompactList}\small\item\em The E\+A\+PI function offering this op. \end{DoxyCompactList}\item 
void $\ast$ \mbox{\hyperlink{group__Eo_ga1eb1f06663abc26079e9fa738b85b1eb}{\+\_\+\+Efl\+\_\+\+Op\+\_\+\+Description\+::func}}
\begin{DoxyCompactList}\small\item\em The static function to call for the op. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{struct__Efl__Op__Description}{Efl\+\_\+\+Op\+\_\+\+Description}} $\ast$ \mbox{\hyperlink{group__Eo_ga8e075e4e272f30e4643cf31e53d0bd21}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Ops\+::descs}}
\begin{DoxyCompactList}\small\item\em The op descriptions array of size count. \end{DoxyCompactList}\item 
size\+\_\+t \mbox{\hyperlink{group__Eo_gae778c3b80f79c268cf5f1afa1c272d2a}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Ops\+::count}}
\begin{DoxyCompactList}\small\item\em Number of op descriptions. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_gab7ad444f2e305ed8304b4d15b10d229b}\label{group__Eo_gab7ad444f2e305ed8304b4d15b10d229b}} 
unsigned int \mbox{\hyperlink{group__Eo_gab7ad444f2e305ed8304b4d15b10d229b}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::version}}
\begin{DoxyCompactList}\small\item\em The current version of eo, use \mbox{\hyperlink{group__Efl__Class_ga2cc2991fe8cb6143c1e042fade1d150f}{E\+O\+\_\+\+V\+E\+R\+S\+I\+ON}}. \end{DoxyCompactList}\item 
const char $\ast$ \mbox{\hyperlink{group__Eo_gab6f6d0c2b9063cbfeb2d0f0557f1eb79}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::name}}
\begin{DoxyCompactList}\small\item\em The name of the class. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Efl__Class_ga09d772acf2ffed4a891dbbd55d88e120}{Efl\+\_\+\+Class\+\_\+\+Type}} \mbox{\hyperlink{group__Eo_gac4eebb8b0fafe60ebebc9171e3e07384}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::type}}
\begin{DoxyCompactList}\small\item\em The type of the class. \end{DoxyCompactList}\item 
size\+\_\+t \mbox{\hyperlink{group__Eo_gae3500b1818e8e9c95b2f7f7b50ef9296}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::data\+\_\+size}}
\begin{DoxyCompactList}\small\item\em The size of data (private + protected + public) this class needs per object. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga18163f53b5555a95ba937ca363a4bc8e}\label{group__Eo_ga18163f53b5555a95ba937ca363a4bc8e}} 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}($\ast$ \mbox{\hyperlink{group__Eo_ga18163f53b5555a95ba937ca363a4bc8e}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::class\+\_\+initializer}} )(\mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em The initializer for the class. \end{DoxyCompactList}\item 
void($\ast$ \mbox{\hyperlink{group__Eo_gae0bbfaf1ac459aca26f24f26615b5200}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::class\+\_\+constructor}} )(\mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em The constructor of the class. \end{DoxyCompactList}\item 
void($\ast$ \mbox{\hyperlink{group__Eo_gab2ffb56416e3696bc5093e293fbea3f1}{\+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::class\+\_\+destructor}} )(\mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)
\begin{DoxyCompactList}\small\item\em The destructor of the class. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga3eccea2ec1062569538acce92ff7e1c7}\label{group__Eo_ga3eccea2ec1062569538acce92ff7e1c7}} 
\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data\+::eo\+\_\+id}
\item 
\mbox{\Hypertarget{group__Eo_ga250f3286ca067e38a9f848a045480c8a}\label{group__Eo_ga250f3286ca067e38a9f848a045480c8a}} 
\+\_\+\+Eo\+\_\+\+Object $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data\+::obj}
\item 
\mbox{\Hypertarget{group__Eo_ga9dc0cdacf91dfe8616d9a632acff5663}\label{group__Eo_ga9dc0cdacf91dfe8616d9a632acff5663}} 
void $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data\+::func}
\item 
\mbox{\Hypertarget{group__Eo_ga8bddc16780d866f78b63821f9c520b8b}\label{group__Eo_ga8bddc16780d866f78b63821f9c520b8b}} 
void $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data\+::data}
\item 
\mbox{\Hypertarget{group__Eo_ga0bdf58c274c1a76d5ed3aea7ec514e9a}\label{group__Eo_ga0bdf58c274c1a76d5ed3aea7ec514e9a}} 
void $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data\+::extn1}
\item 
\mbox{\Hypertarget{group__Eo_gaef5ae9aa1498056a794a38e3a1289c9a}\label{group__Eo_gaef5ae9aa1498056a794a38e3a1289c9a}} 
void $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data\+::extn2}
\item 
\mbox{\Hypertarget{group__Eo_ga12023f11f4f7c3c90eb0cabb1ce65caf}\label{group__Eo_ga12023f11f4f7c3c90eb0cabb1ce65caf}} 
void $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data\+::extn3}
\item 
\mbox{\Hypertarget{group__Eo_gaa354a97dca59f779aeec7bfdb34536f0}\label{group__Eo_gaa354a97dca59f779aeec7bfdb34536f0}} 
void $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data\+::extn4}
\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} Eina\+\_\+\+Lock \mbox{\hyperlink{group__Eo_ga9c4e7a85a0c6779ebbc1014919ead614}{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}}
\begin{DoxyCompactList}\small\item\em This variable is used for locking purposes in the class\+\_\+get function defined in \mbox{\hyperlink{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}{E\+F\+L\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}}. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} unsigned int \mbox{\hyperlink{group__Eo_ga246e9200fe986fe2fed83d9b4159899e}{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation}} = 1
\begin{DoxyCompactList}\small\item\em This variable stores the current eo init generation. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Generic object system. 



\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Eo_ga52514fb91efd9eb019c3e97248058f26}\label{group__Eo_ga52514fb91efd9eb019c3e97248058f26}} 
\index{Eo@{Eo}!efl\+\_\+future\+\_\+cb@{efl\+\_\+future\+\_\+cb}}
\index{efl\+\_\+future\+\_\+cb@{efl\+\_\+future\+\_\+cb}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+future\+\_\+cb}{efl\_future\_cb}}
{\footnotesize\ttfamily \#define efl\+\_\+future\+\_\+cb(\begin{DoxyParamCaption}\item[{}]{\+\_\+eo,  }\item[{}]{... }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc}}(\+\_\+eo, (\mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}})\{\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+\})}



Syntax suger over \mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc()}} 

Usage\+: 
\begin{DoxyCode}
\mbox{\hyperlink{group__Eina__Future_gae4c1896c7eb8b40933c7b0640c881f33}{eina\_future\_then\_from\_desc}}(future, \mbox{\hyperlink{group__Eo_ga52514fb91efd9eb019c3e97248058f26}{efl\_future\_cb}}(my\_object, .succes 
      = success, .success\_type = \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}}));
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc()}} 

\mbox{\hyperlink{group__Eo_ga75435139c37594e8c639ad37e497b319}{efl\+\_\+future\+\_\+\+Eina\+\_\+\+Future\+X\+X\+X\+\_\+then()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga75435139c37594e8c639ad37e497b319}\label{group__Eo_ga75435139c37594e8c639ad37e497b319}} 
\index{Eo@{Eo}!efl\+\_\+future\+\_\+\+Eina\+\_\+\+Future\+X\+X\+X\+\_\+then@{efl\+\_\+future\+\_\+\+Eina\+\_\+\+Future\+X\+X\+X\+\_\+then}}
\index{efl\+\_\+future\+\_\+\+Eina\+\_\+\+Future\+X\+X\+X\+\_\+then@{efl\+\_\+future\+\_\+\+Eina\+\_\+\+Future\+X\+X\+X\+\_\+then}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+future\+\_\+\+Eina\+\_\+\+Future\+X\+X\+X\+\_\+then}{efl\_future\_Eina\_FutureXXX\_then}}
{\footnotesize\ttfamily \#define efl\+\_\+future\+\_\+\+Eina\+\_\+\+Future\+X\+X\+X\+\_\+then(\begin{DoxyParamCaption}\item[{}]{\+\_\+eo,  }\item[{}]{\+\_\+future,  }\item[{}]{... }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Eina__Future_gae4c1896c7eb8b40933c7b0640c881f33}{eina\+\_\+future\+\_\+then\+\_\+from\+\_\+desc}}(\+\_\+future, \mbox{\hyperlink{group__Eo_ga52514fb91efd9eb019c3e97248058f26}{efl\+\_\+future\+\_\+cb}}(\+\_\+eo, \#\# \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+))}



Syntax sugar over \mbox{\hyperlink{group__Eina__Future_gae4c1896c7eb8b40933c7b0640c881f33}{eina\+\_\+future\+\_\+then\+\_\+from\+\_\+desc()}} and \mbox{\hyperlink{group__Eo_ga52514fb91efd9eb019c3e97248058f26}{efl\+\_\+future\+\_\+cb()}}. 

Usage\+: 
\begin{DoxyCode}
\mbox{\hyperlink{group__Eo_ga75435139c37594e8c639ad37e497b319}{efl\_future\_Eina\_FutureXXX\_then}}(o, future, .success = success, .success\_type =
       \mbox{\hyperlink{group__Eina__Value__Group_ga17974fd9ab773a3efefd591ffde58f77}{EINA\_VALUE\_TYPE\_INT}});
\end{DoxyCode}
 \mbox{\Hypertarget{group__Eo_gae7a670d93ca8018f237dbfb91c67f100}\label{group__Eo_gae7a670d93ca8018f237dbfb91c67f100}} 
\index{Eo@{Eo}!efl\+\_\+future\+\_\+chain@{efl\+\_\+future\+\_\+chain}}
\index{efl\+\_\+future\+\_\+chain@{efl\+\_\+future\+\_\+chain}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+future\+\_\+chain}{efl\_future\_chain}}
{\footnotesize\ttfamily \#define efl\+\_\+future\+\_\+chain(\begin{DoxyParamCaption}\item[{}]{\+\_\+eo,  }\item[{}]{\+\_\+prev,  }\item[{}]{... }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array}}(\+\_\+eo, \+\_\+prev, (\mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}} \mbox{[}$\,$\mbox{]})\{\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+, \{N\+U\+LL, N\+U\+LL, N\+U\+LL, N\+U\+LL, N\+U\+LL\}\})}



Syntax suger over \mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array()}} 

Usage\+: 
\begin{DoxyCode}
Eina\_Future *f = \mbox{\hyperlink{group__Eo_gae7a670d93ca8018f237dbfb91c67f100}{efl\_future\_chain}}(my\_object, prev\_future, \{\}, \{\});
\end{DoxyCode}


\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga6bc0e044ca61ebe276e009b1fb541e1d}\label{group__Eo_ga6bc0e044ca61ebe276e009b1fb541e1d}} 
\index{Eo@{Eo}!E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP@{E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP}}
\index{E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP@{E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP}!Eo@{Eo}}
\subsubsection{\texorpdfstring{E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP}{EFL\_FUNC\_COMMON\_OP}}
{\footnotesize\ttfamily \#define E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP(\begin{DoxyParamCaption}\item[{}]{Obj,  }\item[{}]{Name,  }\item[{}]{Def\+Ret }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} \mbox{\hyperlink{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}{Efl\_Object\_Op}} \_\_\_op = 0; \(\backslash\)
   static \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} \_\_\_generation = 0; \(\backslash\)
   Efl\_Object\_Op\_Call\_Data \_\_\_call; \(\backslash\)
   \_Eo\_##Name##\_func \_func\_;                                            \(\backslash\)
   if (\mbox{\hyperlink{group__Eina__Types__Group_ga70675a75a5fb3e9a51d5af985a1fd3aa}{EINA\_UNLIKELY}}((\_\_\_op == \mbox{\hyperlink{group__Eo_ga324b815f591bae754277029f668fd409}{EFL\_NOOP}}) ||                       \(\backslash\)
                     (\_\_\_generation != \mbox{\hyperlink{group__Eo_gaae670ec969c91058fba6351d20d53406}{\_efl\_object\_init\_generation}}))) \(\backslash\)
     goto \_\_##Name##\_op\_create; \textcolor{comment}{/* yes a goto - see below */} \(\backslash\)
   \_\_##Name##\_op\_create\_done: EINA\_HOT; \(\backslash\)
   if (\mbox{\hyperlink{group__Eina__Types__Group_ga70675a75a5fb3e9a51d5af985a1fd3aa}{EINA\_UNLIKELY}}(!\_efl\_object\_call\_resolve( \(\backslash\)
      (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *) Obj, #Name, &\_\_\_call, \_\_\_op, \_\_FILE\_\_, \_\_LINE\_\_))) \(\backslash\)
      goto \_\_##Name##\_failed; \(\backslash\)
   \_func\_ = (\_Eo\_##Name##\_func) \_\_\_call.func;
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga804c8a3d69980087e6555d213a171e06}\label{group__Eo_ga804c8a3d69980087e6555d213a171e06}} 
\index{Eo@{Eo}!E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+E\+ND@{E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+E\+ND}}
\index{E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+E\+ND@{E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+E\+ND}!Eo@{Eo}}
\subsubsection{\texorpdfstring{E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+E\+ND}{EFL\_FUNC\_COMMON\_OP\_END}}
{\footnotesize\ttfamily \#define E\+F\+L\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+E\+ND(\begin{DoxyParamCaption}\item[{}]{Obj,  }\item[{}]{Name,  }\item[{}]{Def\+Ret,  }\item[{}]{Error\+Case }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\_\_##Name##\_op\_create: EINA\_COLD; \(\backslash\)
   \_\_\_op = \_efl\_object\_op\_api\_id\_get(EFL\_FUNC\_COMMON\_OP\_FUNC(Name), Obj, #Name, \_\_FILE\_\_, \_\_LINE\_\_); \(\backslash\)
   \_\_\_generation = \mbox{\hyperlink{group__Eo_gaae670ec969c91058fba6351d20d53406}{\_efl\_object\_init\_generation}}; \(\backslash\)
   if (\mbox{\hyperlink{group__Eina__Types__Group_ga70675a75a5fb3e9a51d5af985a1fd3aa}{EINA\_UNLIKELY}}(\_\_\_op == \mbox{\hyperlink{group__Eo_ga324b815f591bae754277029f668fd409}{EFL\_NOOP}})) \textcolor{keywordflow}{goto} \_\_##Name##\_failed; \(\backslash\)
   goto \_\_##Name##\_op\_create\_done; \(\backslash\)
\_\_##Name##\_failed: EINA\_COLD; \(\backslash\)
   ErrorCase \(\backslash\)
   return DefRet;
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_gacdc277c6ddc8d8e20370844199127188}\label{group__Eo_gacdc277c6ddc8d8e20370844199127188}} 
\index{Eo@{Eo}!\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY@{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}}
\index{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY@{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}{\_EFL\_OBJECT\_FUNC\_BODY}}
{\footnotesize\ttfamily \#define \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(\begin{DoxyParamCaption}\item[{}]{Name,  }\item[{}]{Obj\+Type,  }\item[{}]{Ret,  }\item[{}]{Def\+Ret,  }\item[{}]{Error\+Case }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
Ret \(\backslash\)
  Name(ObjType obj) \(\backslash\)
  \{ \(\backslash\)
     typedef Ret (*\_Eo\_##Name##\_func)(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *, \textcolor{keywordtype}{void} *obj\_data); \(\backslash\)
     Ret \_r; \(\backslash\)
     EFL\_FUNC\_COMMON\_OP(obj, Name, DefRet); \(\backslash\)
     \_EFL\_OBJECT\_API\_BEFORE\_HOOK \(\backslash\)
     \_r = \_EFL\_OBJECT\_API\_CALL\_HOOK(\_func\_(\_\_\_call.eo\_id, \_\_\_call.data)); \(\backslash\)
     \_efl\_object\_call\_end(&\_\_\_call); \(\backslash\)
     \_EFL\_OBJECT\_API\_AFTER\_HOOK \(\backslash\)
     return \_r; \(\backslash\)
     EFL\_FUNC\_COMMON\_OP\_END(obj, Name, DefRet, ErrorCase); \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga4ce6c20ded940908bd740bc6e2c303a3}\label{group__Eo_ga4ce6c20ded940908bd740bc6e2c303a3}} 
\index{Eo@{Eo}!\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY@{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}}
\index{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY@{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}{\_EFL\_OBJECT\_VOID\_FUNC\_BODY}}
{\footnotesize\ttfamily \#define \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(\begin{DoxyParamCaption}\item[{}]{Name,  }\item[{}]{Obj\+Type,  }\item[{}]{Error\+Case }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
void \(\backslash\)
  Name(ObjType obj) \(\backslash\)
  \{ \(\backslash\)
     typedef void (*\_Eo\_##Name##\_func)(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *, \textcolor{keywordtype}{void} *obj\_data); \(\backslash\)
     EFL\_FUNC\_COMMON\_OP(obj, Name, ); \(\backslash\)
     \_EFL\_OBJECT\_API\_BEFORE\_HOOK \(\backslash\)
     \_EFL\_OBJECT\_API\_CALL\_HOOK(\_func\_(\_\_\_call.eo\_id, \_\_\_call.data)); \(\backslash\)
     \_efl\_object\_call\_end(&\_\_\_call); \(\backslash\)
     \_EFL\_OBJECT\_API\_AFTER\_HOOK \(\backslash\)
     return; \(\backslash\)
     EFL\_FUNC\_COMMON\_OP\_END(obj, Name, , ErrorCase); \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_gad1f1dc5756ebff75beacae1766f01050}\label{group__Eo_gad1f1dc5756ebff75beacae1766f01050}} 
\index{Eo@{Eo}!\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV@{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}}
\index{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV@{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}{\_EFL\_OBJECT\_FUNC\_BODYV}}
{\footnotesize\ttfamily \#define \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(\begin{DoxyParamCaption}\item[{}]{Name,  }\item[{}]{Obj\+Type,  }\item[{}]{Ret,  }\item[{}]{Def\+Ret,  }\item[{}]{Error\+Case,  }\item[{}]{Arguments,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
Ret \(\backslash\)
  Name(ObjType obj, \_\_VA\_ARGS\_\_) \(\backslash\)
  \{ \(\backslash\)
     typedef Ret (*\_Eo\_##Name##\_func)(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *, \textcolor{keywordtype}{void} *obj\_data, \_\_VA\_ARGS\_\_); \(\backslash\)
     Ret \_r; \(\backslash\)
     EFL\_FUNC\_COMMON\_OP(obj, Name, DefRet); \(\backslash\)
     \_EFL\_OBJECT\_API\_BEFORE\_HOOK \(\backslash\)
     \_r = \_EFL\_OBJECT\_API\_CALL\_HOOK(\_func\_(\_\_\_call.eo\_id, \_\_\_call.data, Arguments)); \(\backslash\)
     \_efl\_object\_call\_end(&\_\_\_call); \(\backslash\)
     \_EFL\_OBJECT\_API\_AFTER\_HOOK \(\backslash\)
     return \_r; \(\backslash\)
     EFL\_FUNC\_COMMON\_OP\_END(obj, Name, DefRet, ErrorCase); \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga95ed9e4eb117fa7761e357a6a9a9a6ec}\label{group__Eo_ga95ed9e4eb117fa7761e357a6a9a9a6ec}} 
\index{Eo@{Eo}!\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV@{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}}
\index{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV@{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}{\_EFL\_OBJECT\_VOID\_FUNC\_BODYV}}
{\footnotesize\ttfamily \#define \+\_\+\+E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(\begin{DoxyParamCaption}\item[{}]{Name,  }\item[{}]{Obj\+Type,  }\item[{}]{Error\+Case,  }\item[{}]{Arguments,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
void \(\backslash\)
  Name(ObjType obj, \_\_VA\_ARGS\_\_) \(\backslash\)
  \{ \(\backslash\)
     typedef void (*\_Eo\_##Name##\_func)(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *, \textcolor{keywordtype}{void} *obj\_data, \_\_VA\_ARGS\_\_); \(\backslash\)
     EFL\_FUNC\_COMMON\_OP(obj, Name, ); \(\backslash\)
     \_EFL\_OBJECT\_API\_BEFORE\_HOOK \(\backslash\)
     \_EFL\_OBJECT\_API\_CALL\_HOOK(\_func\_(\_\_\_call.eo\_id, \_\_\_call.data, Arguments)); \(\backslash\)
     \_efl\_object\_call\_end(&\_\_\_call); \(\backslash\)
     \_EFL\_OBJECT\_API\_AFTER\_HOOK \(\backslash\)
     return; \(\backslash\)
     EFL\_FUNC\_COMMON\_OP\_END(obj, Name, , ErrorCase); \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_gac2909e2ec26cc1ede0e7f49fd10ff0f4}\label{group__Eo_gac2909e2ec26cc1ede0e7f49fd10ff0f4}} 
\index{Eo@{Eo}!\+\_\+efl\+\_\+add\+\_\+common@{\+\_\+efl\+\_\+add\+\_\+common}}
\index{\+\_\+efl\+\_\+add\+\_\+common@{\+\_\+efl\+\_\+add\+\_\+common}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+efl\+\_\+add\+\_\+common}{\_efl\_add\_common}}
{\footnotesize\ttfamily \#define \+\_\+efl\+\_\+add\+\_\+common(\begin{DoxyParamCaption}\item[{}]{klass,  }\item[{}]{parent,  }\item[{}]{is\+\_\+ref,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
( \(\backslash\)
     \_efl\_add\_internal\_start(\_\_FILE\_\_, \_\_LINE\_\_, klass, parent, is\_ref, 
      \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\_TRUE}}), \(\backslash\)
\textcolor{preprocessor}{     ##\_\_VA\_ARGS\_\_, \(\backslash\)}
\textcolor{preprocessor}{     (Eo *) \_efl\_add\_end(efl\_added, is\_ref, EINA\_TRUE) \(\backslash\)}
\textcolor{preprocessor}{   )}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga663b4b6d84c39cd08874af5094d96d67}\label{group__Eo_ga663b4b6d84c39cd08874af5094d96d67}} 
\index{Eo@{Eo}!efl\+\_\+add@{efl\+\_\+add}}
\index{efl\+\_\+add@{efl\+\_\+add}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+add}{efl\_add}}
{\footnotesize\ttfamily \#define efl\+\_\+add(\begin{DoxyParamCaption}\item[{}]{klass,  }\item[{}]{parent,  }\item[{}]{... }\end{DoxyParamCaption})~\+\_\+efl\+\_\+add\+\_\+common(klass, parent, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}}, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}



Create a new object and add it to an existing parent object. 

The object returned by this function will always have 1 ref (reference count) which belongs to its parent. Therefore, it is not safe to use the returned object outside the constructor methods passed as parameters. If you need to further manipulate the object, use \mbox{\hyperlink{group__Eo_ga27973a0cd41b6e13ef18aff46ed91bf8}{efl\+\_\+add\+\_\+ref}} and remember to \mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\+\_\+unref}} the object when done.

If the object is created using this function, then it will automatically be deleted when the parent object is. There is no need to call efl\+\_\+unref on the child. This is convenient in C.

If the object\textquotesingle{}s class has a constructor, it is called.


\begin{DoxyParams}{Parameters}
{\em klass} & The class of the object to create. \\
\hline
{\em parent} & The parent to set to the object (M\+U\+ST not be {\ttfamily N\+U\+LL}) \\
\hline
{\em ...} & The ops to run. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An handle to the new object on success, N\+U\+LL otherwise. 
\end{DoxyReturn}


Referenced by ecore\+\_\+exe\+\_\+pipe\+\_\+run(), ecore\+\_\+init(), ecore\+\_\+timer\+\_\+add(), ecore\+\_\+timer\+\_\+loop\+\_\+add(), edje\+\_\+3d\+\_\+object\+\_\+add(), eio\+\_\+init(), evas\+\_\+new(), and evas\+\_\+object\+\_\+textblock\+\_\+add().

\mbox{\Hypertarget{group__Eo_ga27973a0cd41b6e13ef18aff46ed91bf8}\label{group__Eo_ga27973a0cd41b6e13ef18aff46ed91bf8}} 
\index{Eo@{Eo}!efl\+\_\+add\+\_\+ref@{efl\+\_\+add\+\_\+ref}}
\index{efl\+\_\+add\+\_\+ref@{efl\+\_\+add\+\_\+ref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+add\+\_\+ref}{efl\_add\_ref}}
{\footnotesize\ttfamily \#define efl\+\_\+add\+\_\+ref(\begin{DoxyParamCaption}\item[{}]{klass,  }\item[{}]{parent,  }\item[{}]{... }\end{DoxyParamCaption})~\+\_\+efl\+\_\+add\+\_\+common(klass, parent, \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}}, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}



Create a new object, add it to an existing parent object and return an extra reference for further manipulation. 

The object returned by this function has 1 ref which belongs to the caller. If a parent object is provided ({\ttfamily parent} is not {\ttfamily N\+U\+LL}) then the object has an additional reference for the parent. Note that if a child object is created in this way then it won\textquotesingle{}t get automatically deleted with the parent. You need to manually remove the extra ref by calling \mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\+\_\+unref}}.

If the object\textquotesingle{}s class has a constructor, it is called.


\begin{DoxyParams}{Parameters}
{\em klass} & The class of the object to create. \\
\hline
{\em parent} & The parent to set to the object (can be {\ttfamily N\+U\+LL}). \\
\hline
{\em ...} & The ops to run. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An handle to the new object on success, N\+U\+LL otherwise. 
\end{DoxyReturn}


Referenced by ecore\+\_\+con\+\_\+eet\+\_\+client\+\_\+new(), ecore\+\_\+con\+\_\+eet\+\_\+server\+\_\+new(), and evas\+\_\+device\+\_\+add\+\_\+full().

\mbox{\Hypertarget{group__Eo_ga5d7c7f0cce250669df72acb60ce91c56}\label{group__Eo_ga5d7c7f0cce250669df72acb60ce91c56}} 
\index{Eo@{Eo}!efl\+\_\+new@{efl\+\_\+new}}
\index{efl\+\_\+new@{efl\+\_\+new}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+new}{efl\_new}}
{\footnotesize\ttfamily \#define efl\+\_\+new(\begin{DoxyParamCaption}\item[{}]{klass,  }\item[{}]{... }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Eo_ga27973a0cd41b6e13ef18aff46ed91bf8}{efl\+\_\+add\+\_\+ref}}(klass, N\+U\+LL, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}



Create a new object. 

The object returned by this function has 1 ref which belongs to the caller. You need to manually remove the ref by calling \mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\+\_\+unref}} when you are done working with the object. The object will be destroyed when all other refs obtained with \mbox{\hyperlink{group__Eo_gae5c8819ec60844eea61c3ed971bb6b5d}{efl\+\_\+ref}} have been returned with \mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\+\_\+unref}}.

If the object\textquotesingle{}s class has a constructor, it is called.


\begin{DoxyParams}{Parameters}
{\em klass} & The class of the object to create. \\
\hline
{\em ...} & The ops to run. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An handle to the new object on success, N\+U\+LL otherwise. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eo_ga3725475fc57eb899484e7e3bc7f8abb8}\label{group__Eo_ga3725475fc57eb899484e7e3bc7f8abb8}} 
\index{Eo@{Eo}!efl\+\_\+data\+\_\+xref@{efl\+\_\+data\+\_\+xref}}
\index{efl\+\_\+data\+\_\+xref@{efl\+\_\+data\+\_\+xref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+data\+\_\+xref}{efl\_data\_xref}}
{\footnotesize\ttfamily \#define efl\+\_\+data\+\_\+xref(\begin{DoxyParamCaption}\item[{}]{obj,  }\item[{}]{klass,  }\item[{}]{ref\+\_\+obj }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Eo_ga88cf6b45917972ce49f300a046273127}{efl\+\_\+data\+\_\+xref\+\_\+internal}}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, klass, ref\+\_\+obj)}



Use this macro if you want to associate a referencer object. 

Convenience macro around \mbox{\hyperlink{group__Eo_ga88cf6b45917972ce49f300a046273127}{efl\+\_\+data\+\_\+xref\+\_\+internal()}} \mbox{\Hypertarget{group__Eo_ga2171db2f78e1891a7a590a2236f16e54}\label{group__Eo_ga2171db2f78e1891a7a590a2236f16e54}} 
\index{Eo@{Eo}!efl\+\_\+data\+\_\+ref@{efl\+\_\+data\+\_\+ref}}
\index{efl\+\_\+data\+\_\+ref@{efl\+\_\+data\+\_\+ref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+data\+\_\+ref}{efl\_data\_ref}}
{\footnotesize\ttfamily \#define efl\+\_\+data\+\_\+ref(\begin{DoxyParamCaption}\item[{}]{obj,  }\item[{}]{klass }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Eo_ga88cf6b45917972ce49f300a046273127}{efl\+\_\+data\+\_\+xref\+\_\+internal}}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, klass, (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$)obj)}



Use this macro if you don\textquotesingle{}t want to associate a referencer object. 

Convenience macro around \mbox{\hyperlink{group__Eo_ga88cf6b45917972ce49f300a046273127}{efl\+\_\+data\+\_\+xref\+\_\+internal()}} 

Referenced by evas\+\_\+gl\+\_\+new().

\mbox{\Hypertarget{group__Eo_ga2b74456d51a6bb0e119d2e63de2782d5}\label{group__Eo_ga2b74456d51a6bb0e119d2e63de2782d5}} 
\index{Eo@{Eo}!efl\+\_\+data\+\_\+xunref@{efl\+\_\+data\+\_\+xunref}}
\index{efl\+\_\+data\+\_\+xunref@{efl\+\_\+data\+\_\+xunref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+data\+\_\+xunref}{efl\_data\_xunref}}
{\footnotesize\ttfamily \#define efl\+\_\+data\+\_\+xunref(\begin{DoxyParamCaption}\item[{}]{obj,  }\item[{}]{data,  }\item[{}]{ref\+\_\+obj }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Eo_ga73887acd3ce2f7c82d027c2ad46809a0}{efl\+\_\+data\+\_\+xunref\+\_\+internal}}(obj, data, ref\+\_\+obj)}



Use this function if you used efl\+\_\+data\+\_\+xref to reference the data. 

Convenience macro around \mbox{\hyperlink{group__Eo_ga73887acd3ce2f7c82d027c2ad46809a0}{efl\+\_\+data\+\_\+xunref\+\_\+internal()}}. \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga3725475fc57eb899484e7e3bc7f8abb8}{efl\+\_\+data\+\_\+xref()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gaa4eda33bdeb025571fb664f0240d7f75}\label{group__Eo_gaa4eda33bdeb025571fb664f0240d7f75}} 
\index{Eo@{Eo}!efl\+\_\+data\+\_\+unref@{efl\+\_\+data\+\_\+unref}}
\index{efl\+\_\+data\+\_\+unref@{efl\+\_\+data\+\_\+unref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+data\+\_\+unref}{efl\_data\_unref}}
{\footnotesize\ttfamily \#define efl\+\_\+data\+\_\+unref(\begin{DoxyParamCaption}\item[{}]{obj,  }\item[{}]{data }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Eo_ga73887acd3ce2f7c82d027c2ad46809a0}{efl\+\_\+data\+\_\+xunref\+\_\+internal}}(obj, data, obj)}



Use this function if you used efl\+\_\+data\+\_\+ref to reference the data. 

Convenience macro around efl\+\_\+data\+\_\+unref\+\_\+internal(). \begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga2171db2f78e1891a7a590a2236f16e54}{efl\+\_\+data\+\_\+ref()}} 
\end{DoxySeeAlso}


Referenced by evas\+\_\+gl\+\_\+free(), and evas\+\_\+gl\+\_\+new().

\mbox{\Hypertarget{group__Eo_ga68644534eb49539ab5c0d8e937482385}\label{group__Eo_ga68644534eb49539ab5c0d8e937482385}} 
\index{Eo@{Eo}!efl\+\_\+xref@{efl\+\_\+xref}}
\index{efl\+\_\+xref@{efl\+\_\+xref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+xref}{efl\_xref}}
{\footnotesize\ttfamily \#define efl\+\_\+xref(\begin{DoxyParamCaption}\item[{}]{obj,  }\item[{}]{ref\+\_\+obj }\end{DoxyParamCaption})~\mbox{\hyperlink{group__Eo_ga71c49a9a9878a3f60e77c071a929d493}{efl\+\_\+xref\+\_\+internal}}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, ref\+\_\+obj)}



Convenience macro around \mbox{\hyperlink{group__Eo_ga71c49a9a9878a3f60e77c071a929d493}{efl\+\_\+xref\+\_\+internal()}} 

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga68644534eb49539ab5c0d8e937482385}{efl\+\_\+xref()}} 
\end{DoxySeeAlso}


\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__Eo_gab02fa807a9c63bbc357b5abf0e52893a}\label{group__Eo_gab02fa807a9c63bbc357b5abf0e52893a}} 
\index{Eo@{Eo}!Efl\+\_\+\+Del\+\_\+\+Intercept@{Efl\+\_\+\+Del\+\_\+\+Intercept}}
\index{Efl\+\_\+\+Del\+\_\+\+Intercept@{Efl\+\_\+\+Del\+\_\+\+Intercept}!Eo@{Eo}}
\subsubsection{\texorpdfstring{Efl\+\_\+\+Del\+\_\+\+Intercept}{Efl\_Del\_Intercept}}
{\footnotesize\ttfamily Efl\+\_\+\+Del\+\_\+\+Intercept}



A function to be called on object deletion/destruction instead of normal destruction taking place. 


\begin{DoxyParams}{Parameters}
{\em obj\+\_\+id} & The object needing to be destroyed. \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}\label{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}} 
\index{Eo@{Eo}!Efl\+\_\+\+Event\+\_\+\+Cb@{Efl\+\_\+\+Event\+\_\+\+Cb}}
\index{Efl\+\_\+\+Event\+\_\+\+Cb@{Efl\+\_\+\+Event\+\_\+\+Cb}!Eo@{Eo}}
\subsubsection{\texorpdfstring{Efl\+\_\+\+Event\+\_\+\+Cb}{Efl\_Event\_Cb}}
{\footnotesize\ttfamily typedef void($\ast$ Efl\+\_\+\+Event\+\_\+\+Cb) (void $\ast$data, const Efl\+\_\+\+Event $\ast$event)}



An event callback prototype. 

\mbox{\Hypertarget{group__Eo_ga11151488ded35583fc2c52918251de98}\label{group__Eo_ga11151488ded35583fc2c52918251de98}} 
\index{Eo@{Eo}!Efl\+\_\+\+Callback\+\_\+\+Priority@{Efl\+\_\+\+Callback\+\_\+\+Priority}}
\index{Efl\+\_\+\+Callback\+\_\+\+Priority@{Efl\+\_\+\+Callback\+\_\+\+Priority}!Eo@{Eo}}
\subsubsection{\texorpdfstring{Efl\+\_\+\+Callback\+\_\+\+Priority}{Efl\_Callback\_Priority}}
{\footnotesize\ttfamily typedef short \mbox{\hyperlink{group__Eo_ga11151488ded35583fc2c52918251de98}{Efl\+\_\+\+Callback\+\_\+\+Priority}}}



Callback priority value. 

Range is -\/32k -\/ 32k. The lower the number, the higher the priority.

See \mbox{\hyperlink{group__Efl__Events_ga10321accc70b51fbf61e2d5ea2063ba2}{E\+F\+L\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+P\+R\+I\+O\+R\+I\+T\+Y\+\_\+\+A\+F\+T\+ER}}, \mbox{\hyperlink{group__Efl__Events_gadec7dc8d738362a99ceba7b6aef3f577}{E\+F\+L\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+P\+R\+I\+O\+R\+I\+T\+Y\+\_\+\+B\+E\+F\+O\+RE}} \mbox{\hyperlink{group__Efl__Events_ga97065f3f1dfdac49befa626ae2b20182}{E\+F\+L\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+P\+R\+I\+O\+R\+I\+T\+Y\+\_\+\+D\+E\+F\+A\+U\+LT}} 

\subsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}\label{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}} 
\index{Eo@{Eo}!Efl\+\_\+\+Id\+\_\+\+Domain@{Efl\+\_\+\+Id\+\_\+\+Domain}}
\index{Efl\+\_\+\+Id\+\_\+\+Domain@{Efl\+\_\+\+Id\+\_\+\+Domain}!Eo@{Eo}}
\subsubsection{\texorpdfstring{Efl\+\_\+\+Id\+\_\+\+Domain}{Efl\_Id\_Domain}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}}}



The virtual allocation domain where an object lives. 

You cannot mix objects between domains in the object tree or as direct or indirect references unless you explicitly handle it and ensure the other domain is adopted into your local thread space. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+I\+N\+V\+A\+L\+ID@{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+I\+N\+V\+A\+L\+ID}!Eo@{Eo}}\index{Eo@{Eo}!E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+I\+N\+V\+A\+L\+ID@{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+I\+N\+V\+A\+L\+ID}}}\mbox{\Hypertarget{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06ac426be57a3f759b2dc6d41a9e4b42d1f}\label{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06ac426be57a3f759b2dc6d41a9e4b42d1f}} 
E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+I\+N\+V\+A\+L\+ID&Invalid. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN@{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN}!Eo@{Eo}}\index{Eo@{Eo}!E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN@{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN}}}\mbox{\Hypertarget{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06a93c0ca2f31ff43cee6d9ce0825e219ca}\label{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06a93c0ca2f31ff43cee6d9ce0825e219ca}} 
E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN&The main loop domain where eo\+\_\+init() is called. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED@{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED}!Eo@{Eo}}\index{Eo@{Eo}!E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED@{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED}}}\mbox{\Hypertarget{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06ab43a8f431d83bf31b763d44600279e67}\label{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06ab43a8f431d83bf31b763d44600279e67}} 
E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED&A special shared domain visible to all threads but with extra locking and unlocking costs to access. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+T\+H\+R\+E\+AD@{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+T\+H\+R\+E\+AD}!Eo@{Eo}}\index{Eo@{Eo}!E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+T\+H\+R\+E\+AD@{E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+T\+H\+R\+E\+AD}}}\mbox{\Hypertarget{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06ac083adfe73c1731f991ab2fc6b06f87f}\label{group__Eo_ggacd9b94e9fd21c08bddee0ab0096b2f06ac083adfe73c1731f991ab2fc6b06f87f}} 
E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+T\+H\+R\+E\+AD&The normal domain for threads so they can adopt the main loop domain at times. \\
\hline

\end{DoxyEnumFields}


\subsection{Function Documentation}
\mbox{\Hypertarget{group__Eo_gaf3a8f41bf1f61462c2ac61580e944ce8}\label{group__Eo_gaf3a8f41bf1f61462c2ac61580e944ce8}} 
\index{Eo@{Eo}!efl\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add@{efl\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add}}
\index{efl\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add@{efl\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add()}{efl\_event\_callback\_priority\_add()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const Efl\+\_\+\+Event\+\_\+\+Description $\ast$}]{desc,  }\item[{\mbox{\hyperlink{group__Eo_ga11151488ded35583fc2c52918251de98}{Efl\+\_\+\+Callback\+\_\+\+Priority}}}]{priority,  }\item[{\mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}}}]{cb,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Add a callback for an event with a specific priority. 

Callbacks of the same priority are called in reverse order of creation.

A callback is only executed on events emitted after this call finished.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em desc} & The description of the event to listen to \\
\hline
\mbox{\tt in}  & {\em priority} & The priority of the callback \\
\hline
\mbox{\tt in}  & {\em cb} & the callback to call \\
\hline
\mbox{\tt in}  & {\em data} & additional data to pass to the callback\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Return {\ttfamily true} when the callback has been successfully added. 
\end{DoxyReturn}


Referenced by evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+priority\+\_\+add().

\mbox{\Hypertarget{group__Eo_ga43474977cf73249aa96c32539fe10d8c}\label{group__Eo_ga43474977cf73249aa96c32539fe10d8c}} 
\index{Eo@{Eo}!efl\+\_\+event\+\_\+callback\+\_\+del@{efl\+\_\+event\+\_\+callback\+\_\+del}}
\index{efl\+\_\+event\+\_\+callback\+\_\+del@{efl\+\_\+event\+\_\+callback\+\_\+del}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+event\+\_\+callback\+\_\+del()}{efl\_event\_callback\_del()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+event\+\_\+callback\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const Efl\+\_\+\+Event\+\_\+\+Description $\ast$}]{desc,  }\item[{\mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}}}]{func,  }\item[{const void $\ast$}]{user\+\_\+data }\end{DoxyParamCaption})}



Delete a callback with a specific data associated with it for an event. 

The callback will never be emitted again after this call, even if a event emission is taking place.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em desc} & The description of the event to listen to \\
\hline
\mbox{\tt in}  & {\em func} & The callback to delete \\
\hline
\mbox{\tt in}  & {\em user\+\_\+data} & The data to compare\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Return {\ttfamily true} when the callback has been successfully removed. 
\end{DoxyReturn}
\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{emotion_signals_example_8c-example}{emotion\+\_\+signals\+\_\+example.\+c}}.\end{Desc}


Referenced by elm\+\_\+drop\+\_\+target\+\_\+del(), elm\+\_\+policy\+\_\+set(), elm\+\_\+store\+\_\+free(), elm\+\_\+store\+\_\+target\+\_\+genlist\+\_\+set(), evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+del(), and evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+del\+\_\+full().

\mbox{\Hypertarget{group__Eo_ga4d3c54c354c8c254913f5241ffa181a9}\label{group__Eo_ga4d3c54c354c8c254913f5241ffa181a9}} 
\index{Eo@{Eo}!efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+priority\+\_\+add@{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+priority\+\_\+add}}
\index{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+priority\+\_\+add@{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+priority\+\_\+add}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+priority\+\_\+add()}{efl\_event\_callback\_array\_priority\_add()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+priority\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{struct__Efl__Callback__Array__Item}{Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}} $\ast$}]{array,  }\item[{\mbox{\hyperlink{group__Eo_ga11151488ded35583fc2c52918251de98}{Efl\+\_\+\+Callback\+\_\+\+Priority}}}]{priority,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Add an array of callbacks created by \mbox{\hyperlink{group__Efl__Events_ga0e3e7266e176a957add323bd6ffabfc2}{E\+F\+L\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+S\+\_\+\+A\+R\+R\+A\+Y\+\_\+\+D\+E\+F\+I\+NE}} for an event with a specific priority. 

The array need to be sorted with \mbox{\hyperlink{group__Efl__Events_ga42c7979f6f85fc21cd2368e3274f1bfb}{efl\+\_\+callbacks\+\_\+cmp}} if you are not using the \mbox{\hyperlink{group__Efl__Events_ga0e3e7266e176a957add323bd6ffabfc2}{E\+F\+L\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+S\+\_\+\+A\+R\+R\+A\+Y\+\_\+\+D\+E\+F\+I\+NE}} macro.

Callbacks of the same priority are called in reverse order of creation.

A callback from the array is only executed on events emitted after this call finished.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em array} & An \#\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item of events to listen to \\
\hline
\mbox{\tt in}  & {\em priority} & The priority of the callback \\
\hline
\mbox{\tt in}  & {\em data} & Additional data to pass to the callback\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Return {\ttfamily true} when the callback has been successfully added. 
\end{DoxyReturn}


Referenced by ecore\+\_\+idle\+\_\+enterer\+\_\+before\+\_\+add().

\mbox{\Hypertarget{group__Eo_ga57db18b24ce0093088d7300e385a46c6}\label{group__Eo_ga57db18b24ce0093088d7300e385a46c6}} 
\index{Eo@{Eo}!efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+del@{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+del}}
\index{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+del@{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+del}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+del()}{efl\_event\_callback\_array\_del()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+event\+\_\+callback\+\_\+array\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{struct__Efl__Callback__Array__Item}{Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}} $\ast$}]{array,  }\item[{const void $\ast$}]{user\+\_\+data }\end{DoxyParamCaption})}



Del a callback array with a specific data associated to it for an event. 

The callbacks from the array will never be emitted again after this call, even if a event emission is going on.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em array} & An \#\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item of events to listen to \\
\hline
\mbox{\tt in}  & {\em user\+\_\+data} & The data to compare\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Return {\ttfamily true} when the callback has been successfully removed. 
\end{DoxyReturn}


Referenced by ecore\+\_\+idle\+\_\+enterer\+\_\+before\+\_\+add().

\mbox{\Hypertarget{group__Eo_ga43d3ed553f9c7c4d39ad5fa5e7c21c32}\label{group__Eo_ga43d3ed553f9c7c4d39ad5fa5e7c21c32}} 
\index{Eo@{Eo}!efl\+\_\+event\+\_\+callback\+\_\+call@{efl\+\_\+event\+\_\+callback\+\_\+call}}
\index{efl\+\_\+event\+\_\+callback\+\_\+call@{efl\+\_\+event\+\_\+callback\+\_\+call}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+event\+\_\+callback\+\_\+call()}{efl\_event\_callback\_call()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+event\+\_\+callback\+\_\+call (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const Efl\+\_\+\+Event\+\_\+\+Description $\ast$}]{desc,  }\item[{void $\ast$}]{event\+\_\+info }\end{DoxyParamCaption})}



Call the callbacks for an event of an object. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em desc} & The description of the event to call. \\
\hline
\mbox{\tt in}  & {\em event\+\_\+info} & Extra event info to pass to the callbacks.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily false} If one of the callbacks aborted the call, {\ttfamily true} otherwise 
\end{DoxyReturn}


Referenced by ecore\+\_\+shutdown(), efl\+\_\+unref(), emotion\+\_\+object\+\_\+last\+\_\+position\+\_\+load(), and emotion\+\_\+object\+\_\+last\+\_\+position\+\_\+save().

\mbox{\Hypertarget{group__Eo_ga4290ecd94b14dabc4e36b4800ca464dc}\label{group__Eo_ga4290ecd94b14dabc4e36b4800ca464dc}} 
\index{Eo@{Eo}!efl\+\_\+event\+\_\+callback\+\_\+legacy\+\_\+call@{efl\+\_\+event\+\_\+callback\+\_\+legacy\+\_\+call}}
\index{efl\+\_\+event\+\_\+callback\+\_\+legacy\+\_\+call@{efl\+\_\+event\+\_\+callback\+\_\+legacy\+\_\+call}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+event\+\_\+callback\+\_\+legacy\+\_\+call()}{efl\_event\_callback\_legacy\_call()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+event\+\_\+callback\+\_\+legacy\+\_\+call (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const Efl\+\_\+\+Event\+\_\+\+Description $\ast$}]{desc,  }\item[{void $\ast$}]{event\+\_\+info }\end{DoxyParamCaption})}



Call the callbacks for an event of an object. 

Like \mbox{\hyperlink{group__Eo_ga43d3ed553f9c7c4d39ad5fa5e7c21c32}{efl\+\_\+event\+\_\+callback\+\_\+call}} but also call legacy smart callbacks that have the same name of the given event.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em desc} & The description of the event to call. \\
\hline
\mbox{\tt in}  & {\em event\+\_\+info} & Extra event info to pass to the callbacks.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily false} If one of the callbacks aborted the call, {\ttfamily true} otherwise
\end{DoxyReturn}
\begin{DoxySince}{Since}
1.\+19 
\end{DoxySince}


Referenced by elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+clear(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+end(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+start(), and evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+call().

\mbox{\Hypertarget{group__Eo_ga932e1176a23d52a260ee52b222a65391}\label{group__Eo_ga932e1176a23d52a260ee52b222a65391}} 
\index{Eo@{Eo}!efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc@{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc}}
\index{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc@{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc()}{efl\_future\_cb\_from\_desc()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{struct__Eina__Future__Desc}{Eina\+\_\+\+Future\+\_\+\+Desc}} efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}}}]{desc }\end{DoxyParamCaption})}



Creates an Eina\+\_\+\+Future\+\_\+\+Desc for an EO object. 

This function creates an Eina\+\_\+\+Future\+\_\+\+Desc based on an Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc. The main purpose of this function is create a \char`\"{}link\char`\"{} between the future and the object. In case the object is deleted before the future is resolved/rejected, the object destructor will cancel the future.

\begin{DoxyNote}{Note}
In case context info is required for the \#\+Efl\+\_\+\+Future\+\_\+\+Desc, callbacks \mbox{\hyperlink{group__Eo_gad6745c23dad3578ff5df8b4498509cb1}{efl\+\_\+key\+\_\+data\+\_\+set()}} can be used.
\end{DoxyNote}
The example below demonstrates a file download using an Eo object. If the download lasts more than 30 seconds the Eo object will be deleted along with the future. Usually this would be done with an \mbox{\hyperlink{group__Eina__Future_ga6a39aa29dad9e9ba9038908758f20c32}{eina\+\_\+future\+\_\+race()}} of the download promise and a timeout promise, however the following example is useful to illustrate \mbox{\hyperlink{group__Eo_gad6745c23dad3578ff5df8b4498509cb1}{efl\+\_\+key\+\_\+data\+\_\+set()}} usage.


\begin{DoxyCode}
\textcolor{keyword}{static} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\_Bool}}
\_timeout(\textcolor{keywordtype}{void} *data)
\{
   \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *downloader = data;
   \textcolor{comment}{//In case the download is not completed yet.}
   \textcolor{comment}{//Delete the downloader (cancels the file download and the future)}
   \mbox{\hyperlink{group__Eo_gad6745c23dad3578ff5df8b4498509cb1}{efl\_key\_data\_set}}(downloader, \textcolor{stringliteral}{"timer"}, NULL);
   \mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\_unref}}(downloader);
   \textcolor{keywordflow}{return} \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\_FALSE}};
\}

\textcolor{keyword}{static} \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}}
\_file\_ok(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *o \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \textcolor{keyword}{const} \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}} value)
\{
   \textcolor{keyword}{const} \textcolor{keywordtype}{char} *data;
   \textcolor{comment}{//There's no need to check the value type since EO infra already has done so.}
   \mbox{\hyperlink{group__Eina__Value__Value__Group_ga6f088fe6c6127d808cdf214b355cbdeb}{eina\_value\_get}}(&value, &data);
   \textcolor{comment}{//Deliver the data to the user}
   data\_deliver(data);
   \textcolor{keywordflow}{return} v;
\}

\textcolor{keyword}{static} \mbox{\hyperlink{struct__Eina__Value}{Eina\_Value}}
\_file\_err(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *o \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}}, \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\_Error}} error)
\{
   \textcolor{comment}{//In case the downloader is deleted before the future is resolved, the future will be canceled thus this
       callback will be called.}
   fprintf(stderr, \textcolor{stringliteral}{"Could not download the file. Reason: %s\(\backslash\)n"}, 
      \mbox{\hyperlink{group__Eina__Error__Group_ga3402bc58a9f854391eb35fa7650edda5}{eina\_error\_msg\_get}}(error));
   \textcolor{keywordflow}{return} \mbox{\hyperlink{group__Eina__Value__Group_ga06540fbaf4a53dd90133deb813d4f102}{EINA\_VALUE\_EMPTY}};
\}

\textcolor{keyword}{static} \textcolor{keywordtype}{void}
\_downlader\_free(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *o, \textcolor{keyword}{const} Eina\_Future *dead\_future \mbox{\hyperlink{group__Eina__Types__Group_ga82d751be730f849719ca292f9558be87}{EINA\_UNUSED}})
\{
   \mbox{\hyperlink{group__Ecore__Timer__Group_gaf96ffb609956658ec038e54bd39f46f0}{Ecore\_Timer}} *t = \mbox{\hyperlink{group__Eo_gab88da320b2aa6d7db69a94cadf555707}{efl\_key\_data\_get}}(o, \textcolor{stringliteral}{"timer"});
   \textcolor{comment}{//The download finished before the timer expired. Cancel it...}
   \textcolor{keywordflow}{if} (t)
   \{
     \mbox{\hyperlink{group__Ecore__Timer__Group_gaba2b599c7aabe3ab664dc3d47f62a33a}{ecore\_timer\_del}}(t);
     \mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\_unref}}(o); \textcolor{comment}{//Delete the object}
   \} \textcolor{comment}{//else - In this case the future was canceled due efl\_unref() in \_timeout - No need to call
       efl\_unref()}
\}

\textcolor{keywordtype}{void} download\_file(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *file)
\{
  \textcolor{comment}{//This could be rewritten using eina\_future\_race()}
  \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *downloader = \mbox{\hyperlink{group__Eo_ga663b4b6d84c39cd08874af5094d96d67}{efl\_add}}(MY\_DOWNLOADER\_CLASS, NULL);
  Eina\_Future *f = downloader\_download\_file(downloader, file);
  timer = \mbox{\hyperlink{group__Ecore__Timer__Group_ga7b9cb9d24ecebfdbb957436e2e669402}{ecore\_timer\_add}}(30, \_timeout, downloader);
  \textcolor{comment}{//Usually this would be done with an eina\_future\_race() of the download promise and a timeout promise,}
  \textcolor{comment}{//however the following example is useful to illustrate efl\_key\_data\_set() usage.}
  \mbox{\hyperlink{group__Eo_gad6745c23dad3578ff5df8b4498509cb1}{efl\_key\_data\_set}}(downloader, \textcolor{stringliteral}{"timer"}, timer);
  \mbox{\hyperlink{group__Eina__Future_gae4c1896c7eb8b40933c7b0640c881f33}{eina\_future\_then\_from\_desc}}(f, \mbox{\hyperlink{group__Eo_ga52514fb91efd9eb019c3e97248058f26}{efl\_future\_cb}}(.success = \_file\_ok, .
      error = \_file\_err, .success\_type = \mbox{\hyperlink{group__Eina__Value__Group_ga916f76c8d5ffd4c3ee3c322a54efd0b7}{EINA\_VALUE\_TYPE\_STRING}}, .free = downloader\_free));
\}
\end{DoxyCode}



\begin{DoxyParams}{Parameters}
{\em obj} & The object to create the link. \\
\hline
{\em desc} & An Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An Eina\+\_\+\+Future\+\_\+\+Desc to be used by \mbox{\hyperlink{group__Eina__Future_ga9f4948790f1f84de93ba8195520d4a92}{eina\+\_\+future\+\_\+then()}}, \mbox{\hyperlink{group__Eina__Future_gaeb721d890aa5eac3103a982edde76e9a}{eina\+\_\+future\+\_\+chain()}} and friends. 
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array()}} 

\mbox{\hyperlink{group__Eo_ga52514fb91efd9eb019c3e97248058f26}{efl\+\_\+future\+\_\+cb()}} 

\#\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc 

\mbox{\hyperlink{group__Eo_gad6745c23dad3578ff5df8b4498509cb1}{efl\+\_\+key\+\_\+data\+\_\+set()}} 
\end{DoxySeeAlso}


Referenced by efl\+\_\+future\+\_\+chain\+\_\+array().

\mbox{\Hypertarget{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}\label{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}} 
\index{Eo@{Eo}!efl\+\_\+future\+\_\+chain\+\_\+array@{efl\+\_\+future\+\_\+chain\+\_\+array}}
\index{efl\+\_\+future\+\_\+chain\+\_\+array@{efl\+\_\+future\+\_\+chain\+\_\+array}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+future\+\_\+chain\+\_\+array()}{efl\_future\_chain\_array()}}
{\footnotesize\ttfamily E\+O\+A\+PI Eina\+\_\+\+Future$\ast$ efl\+\_\+future\+\_\+chain\+\_\+array (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{Eina\+\_\+\+Future $\ast$}]{prev,  }\item[{const \mbox{\hyperlink{struct__Efl__Future__Cb__Desc}{Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc}}}]{descs\mbox{[}$\,$\mbox{]} }\end{DoxyParamCaption})}



Creates a Future chain based on \#\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc. 

This function is an wrapper around \mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc()}} and \mbox{\hyperlink{group__Eina__Future_gae4c1896c7eb8b40933c7b0640c881f33}{eina\+\_\+future\+\_\+then\+\_\+from\+\_\+desc()}}

For more information about these check the documentation.


\begin{DoxyParams}{Parameters}
{\em obj} & An EO object to link to the future \\
\hline
{\em prev} & The previous future \\
\hline
{\em descs} & An array of Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An Eina\+\_\+\+Future or {\ttfamily N\+U\+LL} on error. 
\end{DoxyReturn}
\begin{DoxyNote}{Note}
If an error occurs the whole future chain will be C\+A\+N\+C\+E\+L\+ED, causing desc.\+error to be called passing {\ttfamily E\+N\+O\+M\+EM} or {\ttfamily E\+I\+N\+V\+AL} and desc.\+free to free the {\ttfamily obj} if necessary.
\end{DoxyNote}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gae7a670d93ca8018f237dbfb91c67f100}{efl\+\_\+future\+\_\+chain()}} 

\mbox{\hyperlink{group__Eo_ga52514fb91efd9eb019c3e97248058f26}{efl\+\_\+future\+\_\+cb()}} 

\mbox{\hyperlink{group__Eina__Future_gae4c1896c7eb8b40933c7b0640c881f33}{eina\+\_\+future\+\_\+then\+\_\+from\+\_\+desc()}} 

\#\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc 
\end{DoxySeeAlso}


References efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc(), eina\+\_\+future\+\_\+then\+\_\+from\+\_\+desc(), \+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::error, \+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::free, \+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::success, and \+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::success\+\_\+type.

\mbox{\Hypertarget{group__Eo_gaf39c3ceffae725faca68146fa293eafd}\label{group__Eo_gaf39c3ceffae725faca68146fa293eafd}} 
\index{Eo@{Eo}!efl\+\_\+object\+\_\+init@{efl\+\_\+object\+\_\+init}}
\index{efl\+\_\+object\+\_\+init@{efl\+\_\+object\+\_\+init}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+object\+\_\+init()}{efl\_object\_init()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+object\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Init the eo subsystem. 

\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} if eo is init, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} otherwise.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
eo\+\_\+shutdown() 
\end{DoxySeeAlso}


References \+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock, E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN, E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED, eina\+\_\+cow\+\_\+add(), E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, eina\+\_\+hash\+\_\+pointer\+\_\+new(), eina\+\_\+hash\+\_\+string\+\_\+superfast\+\_\+new(), eina\+\_\+init(), eina\+\_\+lock\+\_\+recursive\+\_\+new(), eina\+\_\+log\+\_\+domain\+\_\+register(), E\+I\+N\+A\+\_\+\+L\+O\+G\+\_\+\+E\+RR, eina\+\_\+log\+\_\+timing(), eina\+\_\+magic\+\_\+string\+\_\+static\+\_\+set(), eina\+\_\+spinlock\+\_\+new(), eina\+\_\+thread\+\_\+self(), eina\+\_\+tls\+\_\+cb\+\_\+new(), eina\+\_\+tls\+\_\+set(), E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.



Referenced by ecore\+\_\+audio\+\_\+init(), ecore\+\_\+init(), and ector\+\_\+init().

\mbox{\Hypertarget{group__Eo_ga3af621f7c79b3a99979c81f70e4c4dc3}\label{group__Eo_ga3af621f7c79b3a99979c81f70e4c4dc3}} 
\index{Eo@{Eo}!efl\+\_\+object\+\_\+shutdown@{efl\+\_\+object\+\_\+shutdown}}
\index{efl\+\_\+object\+\_\+shutdown@{efl\+\_\+object\+\_\+shutdown}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+object\+\_\+shutdown()}{efl\_object\_shutdown()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+object\+\_\+shutdown (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Shutdown the eo subsystem. 

\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} if eo is init, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} otherwise.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gaf39c3ceffae725faca68146fa293eafd}{efl\+\_\+object\+\_\+init()}} 
\end{DoxySeeAlso}


References efl\+\_\+class\+\_\+name\+\_\+get(), efl\+\_\+ref\+\_\+count(), E\+I\+N\+A\+\_\+\+I\+T\+E\+R\+A\+T\+O\+R\+\_\+\+F\+O\+R\+E\+A\+CH, eina\+\_\+iterator\+\_\+free(), eina\+\_\+log\+\_\+timing(), E\+I\+N\+A\+\_\+\+T\+R\+UE, and eo\+\_\+objects\+\_\+iterator\+\_\+new().

\mbox{\Hypertarget{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}\label{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}} 
\index{Eo@{Eo}!efl\+\_\+domain\+\_\+get@{efl\+\_\+domain\+\_\+get}}
\index{efl\+\_\+domain\+\_\+get@{efl\+\_\+domain\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+domain\+\_\+get()}{efl\_domain\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} efl\+\_\+domain\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get the native domain for the current thread. 

\begin{DoxyReturn}{Returns}
The native domain
\end{DoxyReturn}
This will return the native eo object allocation domain for the current thread. This can only be changed with \mbox{\hyperlink{group__Eo_ga09b2a75ac085db673a85d501c08947a8}{efl\+\_\+domain\+\_\+switch()}} and can only be called before any objects are created/allocated on the thread where it\textquotesingle{}s called. Calling it after this point will result in undefined behavior, so be sure to call this immediaetly after a thread begins to execute. You must not change the domain of the main thread.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga09b2a75ac085db673a85d501c08947a8}{efl\+\_\+domain\+\_\+switch()}} 

\mbox{\hyperlink{group__Eo_gafb7e487fe2d54a094d486c205a9fbdb7}{efl\+\_\+domain\+\_\+current\+\_\+get()}} 

\mbox{\hyperlink{group__Eo_ga112b0593601059f9fecb536884065e58}{efl\+\_\+domain\+\_\+current\+\_\+set()}} 

\mbox{\hyperlink{group__Eo_ga37042bd86adf97657661e395d3ddfef4}{efl\+\_\+domain\+\_\+current\+\_\+push()}} 

\mbox{\hyperlink{group__Eo_gaec41ad5374ab0af681828799f6920235}{efl\+\_\+domain\+\_\+current\+\_\+pop()}} 

\mbox{\hyperlink{group__Eo_ga568c543b5265e8805de7a8b5081f1873}{efl\+\_\+domain\+\_\+data\+\_\+get()}} 

\mbox{\hyperlink{group__Eo_gac840ae91207648655fe5f092f779376a}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}} 

\mbox{\hyperlink{group__Eo_gac447e1d53336ef91e5af6eb4c953f425}{efl\+\_\+domain\+\_\+data\+\_\+return()}} 

\mbox{\hyperlink{group__Eo_gaab3fe10ab5ab1ee5521cf0f7745fef1d}{efl\+\_\+compatible()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga09b2a75ac085db673a85d501c08947a8}\label{group__Eo_ga09b2a75ac085db673a85d501c08947a8}} 
\index{Eo@{Eo}!efl\+\_\+domain\+\_\+switch@{efl\+\_\+domain\+\_\+switch}}
\index{efl\+\_\+domain\+\_\+switch@{efl\+\_\+domain\+\_\+switch}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+domain\+\_\+switch()}{efl\_domain\_switch()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+domain\+\_\+switch (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}}}]{domain }\end{DoxyParamCaption})}



Switch the native domain for the current thread. 


\begin{DoxyParams}{Parameters}
{\em domain} & The domain to switch to \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+UE if the switch succeeds and E\+I\+N\+A\+\_\+\+F\+A\+L\+SE if it fails.
\end{DoxyReturn}
Permanently switch the native domain for new objects for the calling thread. All objects created on this thread U\+N\+L\+E\+SS it has switched to a new domain temporarily with \mbox{\hyperlink{group__Eo_ga112b0593601059f9fecb536884065e58}{efl\+\_\+domain\+\_\+current\+\_\+set()}}, \mbox{\hyperlink{group__Eo_ga37042bd86adf97657661e395d3ddfef4}{efl\+\_\+domain\+\_\+current\+\_\+push()}} or \mbox{\hyperlink{group__Eo_gaec41ad5374ab0af681828799f6920235}{efl\+\_\+domain\+\_\+current\+\_\+pop()}}, \mbox{\hyperlink{group__Eo_gac840ae91207648655fe5f092f779376a}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}} and \mbox{\hyperlink{group__Eo_gac447e1d53336ef91e5af6eb4c953f425}{efl\+\_\+domain\+\_\+data\+\_\+return()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}


References E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN, E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED, E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+T\+H\+R\+E\+AD, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, eina\+\_\+tls\+\_\+set(), E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.

\mbox{\Hypertarget{group__Eo_gafb7e487fe2d54a094d486c205a9fbdb7}\label{group__Eo_gafb7e487fe2d54a094d486c205a9fbdb7}} 
\index{Eo@{Eo}!efl\+\_\+domain\+\_\+current\+\_\+get@{efl\+\_\+domain\+\_\+current\+\_\+get}}
\index{efl\+\_\+domain\+\_\+current\+\_\+get@{efl\+\_\+domain\+\_\+current\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+domain\+\_\+current\+\_\+get()}{efl\_domain\_current\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} efl\+\_\+domain\+\_\+current\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get the current domain used for allocating new objects. 

\begin{DoxyReturn}{Returns}
The current domain
\end{DoxyReturn}
Get the currently used domain that is at the top of the domain stack. There is actually a stack of domans to use. You can alter this via \mbox{\hyperlink{group__Eo_ga37042bd86adf97657661e395d3ddfef4}{efl\+\_\+domain\+\_\+current\+\_\+push()}} and \mbox{\hyperlink{group__Eo_gaec41ad5374ab0af681828799f6920235}{efl\+\_\+domain\+\_\+current\+\_\+pop()}}. This only gets the domain for the current thread.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga112b0593601059f9fecb536884065e58}\label{group__Eo_ga112b0593601059f9fecb536884065e58}} 
\index{Eo@{Eo}!efl\+\_\+domain\+\_\+current\+\_\+set@{efl\+\_\+domain\+\_\+current\+\_\+set}}
\index{efl\+\_\+domain\+\_\+current\+\_\+set@{efl\+\_\+domain\+\_\+current\+\_\+set}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+domain\+\_\+current\+\_\+set()}{efl\_domain\_current\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+domain\+\_\+current\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}}}]{domain }\end{DoxyParamCaption})}



Set the current domain used for allocating new objects. 

\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+UE if it succeeds and E\+I\+N\+A\+\_\+\+F\+A\+L\+SE on failure.
\end{DoxyReturn}
Temporarily switch the current domain being used for allocation. There is actually a stack of domans to use. You can alter this via \mbox{\hyperlink{group__Eo_ga37042bd86adf97657661e395d3ddfef4}{efl\+\_\+domain\+\_\+current\+\_\+push()}} and \mbox{\hyperlink{group__Eo_gaec41ad5374ab0af681828799f6920235}{efl\+\_\+domain\+\_\+current\+\_\+pop()}}. The current domain is the one on the top of the stack, so this entry is altered without pushing or popping. This only applies to the calling thread.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}


References E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN, E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+T\+H\+R\+E\+AD, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.

\mbox{\Hypertarget{group__Eo_ga37042bd86adf97657661e395d3ddfef4}\label{group__Eo_ga37042bd86adf97657661e395d3ddfef4}} 
\index{Eo@{Eo}!efl\+\_\+domain\+\_\+current\+\_\+push@{efl\+\_\+domain\+\_\+current\+\_\+push}}
\index{efl\+\_\+domain\+\_\+current\+\_\+push@{efl\+\_\+domain\+\_\+current\+\_\+push}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+domain\+\_\+current\+\_\+push()}{efl\_domain\_current\_push()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+domain\+\_\+current\+\_\+push (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}}}]{domain }\end{DoxyParamCaption})}



Push a new domain onto the domain stack. 


\begin{DoxyParams}{Parameters}
{\em domain} & The domain to push. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+UE if it succeeds and E\+I\+N\+A\+\_\+\+F\+A\+L\+SE on failure.
\end{DoxyReturn}
This pushes a domain on the domain stack that can be popped later with \mbox{\hyperlink{group__Eo_gaec41ad5374ab0af681828799f6920235}{efl\+\_\+domain\+\_\+current\+\_\+pop()}}. If the stack is full this may fail and return E\+I\+N\+A\+\_\+\+F\+A\+L\+SE. This applies only to the calling thread.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gaec41ad5374ab0af681828799f6920235}\label{group__Eo_gaec41ad5374ab0af681828799f6920235}} 
\index{Eo@{Eo}!efl\+\_\+domain\+\_\+current\+\_\+pop@{efl\+\_\+domain\+\_\+current\+\_\+pop}}
\index{efl\+\_\+domain\+\_\+current\+\_\+pop@{efl\+\_\+domain\+\_\+current\+\_\+pop}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+domain\+\_\+current\+\_\+pop()}{efl\_domain\_current\_pop()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void efl\+\_\+domain\+\_\+current\+\_\+pop (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Pop a previously pushed domain from the domain stack. 

This pops the top domain off the domain stack for the calling thread that was pushed with \mbox{\hyperlink{group__Eo_ga37042bd86adf97657661e395d3ddfef4}{efl\+\_\+domain\+\_\+current\+\_\+push()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga568c543b5265e8805de7a8b5081f1873}\label{group__Eo_ga568c543b5265e8805de7a8b5081f1873}} 
\index{Eo@{Eo}!efl\+\_\+domain\+\_\+data\+\_\+get@{efl\+\_\+domain\+\_\+data\+\_\+get}}
\index{efl\+\_\+domain\+\_\+data\+\_\+get@{efl\+\_\+domain\+\_\+data\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+domain\+\_\+data\+\_\+get()}{efl\_domain\_data\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga14259b75d4c7701b5d5edcee323a10fc}{Efl\+\_\+\+Domain\+\_\+\+Data}}$\ast$ efl\+\_\+domain\+\_\+data\+\_\+get (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Get an opaque handle to the local native domain eoid data. 

\begin{DoxyReturn}{Returns}
A handle to the local native domain data or N\+U\+Ll on failure
\end{DoxyReturn}
This gets a handle to the domain data for the current thread, intended to be used by another thread to adopt with \mbox{\hyperlink{group__Eo_gac840ae91207648655fe5f092f779376a}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}}. Once you use \mbox{\hyperlink{group__Eo_gac840ae91207648655fe5f092f779376a}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}}, the thread which called \mbox{\hyperlink{group__Eo_ga568c543b5265e8805de7a8b5081f1873}{efl\+\_\+domain\+\_\+data\+\_\+get()}} should suspend and not execute anything related to eo or efl objects until the thread that adopted the data calls \mbox{\hyperlink{group__Eo_gac447e1d53336ef91e5af6eb4c953f425}{efl\+\_\+domain\+\_\+data\+\_\+return()}} to return the data to its owner and stop making it available to that thread.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gac840ae91207648655fe5f092f779376a}\label{group__Eo_gac840ae91207648655fe5f092f779376a}} 
\index{Eo@{Eo}!efl\+\_\+domain\+\_\+data\+\_\+adopt@{efl\+\_\+domain\+\_\+data\+\_\+adopt}}
\index{efl\+\_\+domain\+\_\+data\+\_\+adopt@{efl\+\_\+domain\+\_\+data\+\_\+adopt}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+domain\+\_\+data\+\_\+adopt()}{efl\_domain\_data\_adopt()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} efl\+\_\+domain\+\_\+data\+\_\+adopt (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga14259b75d4c7701b5d5edcee323a10fc}{Efl\+\_\+\+Domain\+\_\+\+Data}} $\ast$}]{data\+\_\+in }\end{DoxyParamCaption})}



Adopt a single extra domain to be the current domain. 


\begin{DoxyParams}{Parameters}
{\em datas\+\_\+in} & The domain data to adopt \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The domain that was adopted or E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+I\+N\+V\+A\+L\+ID on failure
\end{DoxyReturn}
This will adopt the given domain data pointed to by {\ttfamily data\+\_\+in} as an extra domain locally. The adopted domain must have a domain ID that is not the same as the current thread domain or local domain. You may not adopt a domain that clashes with the current domain. If you set, push or pop domains in such a way that these are the same then undefined behaviour will occur.

This will also push the adopted domain as the current domain so that all newly created objects (unless their parent is of a differing domain) will be part of this adopted domain. You can still access objects from your local domain as well, but be aware that creation will require some switch of domain by push, pop or set. Return the domain with \mbox{\hyperlink{group__Eo_gac447e1d53336ef91e5af6eb4c953f425}{efl\+\_\+domain\+\_\+data\+\_\+return()}} when done.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}


References E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+I\+N\+V\+A\+L\+ID, and E\+RR.



Referenced by ecore\+\_\+thread\+\_\+main\+\_\+loop\+\_\+begin().

\mbox{\Hypertarget{group__Eo_gac447e1d53336ef91e5af6eb4c953f425}\label{group__Eo_gac447e1d53336ef91e5af6eb4c953f425}} 
\index{Eo@{Eo}!efl\+\_\+domain\+\_\+data\+\_\+return@{efl\+\_\+domain\+\_\+data\+\_\+return}}
\index{efl\+\_\+domain\+\_\+data\+\_\+return@{efl\+\_\+domain\+\_\+data\+\_\+return}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+domain\+\_\+data\+\_\+return()}{efl\_domain\_data\_return()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+domain\+\_\+data\+\_\+return (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}}}]{domain }\end{DoxyParamCaption})}



Return a domain to its original owning thread. 


\begin{DoxyParams}{Parameters}
{\em domain} & The domain to return \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+UE on success E\+I\+N\+A\+\_\+\+F\+A\+L\+SE on failure
\end{DoxyReturn}
This returns the domain specified by {\ttfamily domain} to the thread it came from, allowing said thread to continue execution afterwards. This will implicitly pop the current domain from the stack, assuming that the current domain is the same one pushed implicitly by \mbox{\hyperlink{group__Eo_gac840ae91207648655fe5f092f779376a}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}}. You cannot return your own native local domain, only the one that was adopted by \mbox{\hyperlink{group__Eo_gac840ae91207648655fe5f092f779376a}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}


References E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+M\+A\+IN, E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+T\+H\+R\+E\+AD, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.



Referenced by ecore\+\_\+thread\+\_\+main\+\_\+loop\+\_\+end().

\mbox{\Hypertarget{group__Eo_gaab3fe10ab5ab1ee5521cf0f7745fef1d}\label{group__Eo_gaab3fe10ab5ab1ee5521cf0f7745fef1d}} 
\index{Eo@{Eo}!efl\+\_\+compatible@{efl\+\_\+compatible}}
\index{efl\+\_\+compatible@{efl\+\_\+compatible}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+compatible()}{efl\_compatible()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+compatible (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj\+\_\+target }\end{DoxyParamCaption})}



Check if 2 objects are compatible 


\begin{DoxyParams}{Parameters}
{\em obj} & The basic object \\
\hline
{\em obj\+\_\+target} & The alternate object that may be referenced by {\ttfamily obj} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+UE if compatible, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE if not
\end{DoxyReturn}
This checks to see if 2 objects are compatible \+: whether they are parent or children of each other, could reference each other etc. You only need to call this if you have objects from multiple domains (an adopted domain with \mbox{\hyperlink{group__Eo_gac840ae91207648655fe5f092f779376a}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}} or the shared domain E\+F\+L\+\_\+\+I\+D\+\_\+\+D\+O\+M\+A\+I\+N\+\_\+\+S\+H\+A\+R\+ED where objects may be accessed by any thread).

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga180f423f050f44d7a2c5f5bad5f9759d}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}


References D\+BG, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, and E\+I\+N\+A\+\_\+\+T\+R\+UE.

\mbox{\Hypertarget{group__Eo_ga0669903ef159417c78dd0b48c4c71517}\label{group__Eo_ga0669903ef159417c78dd0b48c4c71517}} 
\index{Eo@{Eo}!efl\+\_\+super@{efl\+\_\+super}}
\index{efl\+\_\+super@{efl\+\_\+super}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+super()}{efl\_super()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}}$\ast$ efl\+\_\+super (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{cur\+\_\+klass }\end{DoxyParamCaption})}



Prepare a call to the parent class implementation of a function. 


\begin{DoxyParams}{Parameters}
{\em obj} & The object to call (can be a class). \\
\hline
{\em cur\+\_\+klass} & The current class. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An EO handle which must be used as part of an EO function call.
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
The returned value must always be used as the first argument (the object) of a method or property function call, and should never be handled in any other way. Do not call any function from this file on the returned value (eg. efl\+\_\+ref, etc...).
\end{DoxyWarning}
Usage\+: 
\begin{DoxyCode}
\textcolor{comment}{// Inside the implementation code for MY\_CLASS}
my\_property\_set(\mbox{\hyperlink{group__Eo_ga0669903ef159417c78dd0b48c4c71517}{efl\_super}}(obj, MY\_CLASS), value);
\end{DoxyCode}


A common usage pattern is to forward function calls to the parent function\+: 
\begin{DoxyCode}
EOLIAN \textcolor{keyword}{static} \textcolor{keywordtype}{void}
\_my\_class\_my\_property\_set(\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *obj, My\_Class\_Data *pd, \textcolor{keywordtype}{int} value)
\{
  \textcolor{comment}{// Do some processing on this class data, or on the value}
  \textcolor{keywordflow}{if} (value < 0) value = 0;
  pd->last\_value = value;
  \textcolor{comment}{// Pass the call to the parent class}
  my\_property\_set(\mbox{\hyperlink{group__Eo_ga0669903ef159417c78dd0b48c4c71517}{efl\_super}}(obj, MY\_CLASS), value);
  \textcolor{comment}{// Do some more processing}
\}
\end{DoxyCode}


{\ttfamily cur\+\_\+klass} must be a valid class in the inheritance hierarchy of {\ttfamily obj\textquotesingle{}s} class. Invalid values will lead to undefined behaviour.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga0bb174743483f07a76b50eba04daf6fa}{efl\+\_\+cast}} 
\end{DoxySeeAlso}


References E\+I\+N\+A\+\_\+\+T\+R\+UE.



Referenced by efl\+\_\+debug\+\_\+name\+\_\+get().

\mbox{\Hypertarget{group__Eo_ga0bb174743483f07a76b50eba04daf6fa}\label{group__Eo_ga0bb174743483f07a76b50eba04daf6fa}} 
\index{Eo@{Eo}!efl\+\_\+cast@{efl\+\_\+cast}}
\index{efl\+\_\+cast@{efl\+\_\+cast}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+cast()}{efl\_cast()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}}$\ast$ efl\+\_\+cast (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{cur\+\_\+klass }\end{DoxyParamCaption})}



Prepare a call to cast to a parent class implementation of a function. 


\begin{DoxyParams}{Parameters}
{\em obj} & The object to call (can be a class). \\
\hline
{\em cur\+\_\+klass} & The class to cast into. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An EO handle that must be used as part of an EO function call.
\end{DoxyReturn}
\begin{DoxyWarning}{Warning}
The returned value must always be used as the first argument (the object) of a method or property function call and should never be handled in any other way. Do not call any function from this file on the returned value (eg. efl\+\_\+ref, etc...).
\end{DoxyWarning}
Usage\+: 
\begin{DoxyCode}
\textcolor{comment}{// Inside the implementation code for MY\_CLASS}
my\_property\_set(\mbox{\hyperlink{group__Eo_ga0bb174743483f07a76b50eba04daf6fa}{efl\_cast}}(obj, SOME\_OTHER\_CLASS), value);
\end{DoxyCode}


In the above example, {\ttfamily obj} is assumed to inherit from {\ttfamily S\+O\+M\+E\+\_\+\+O\+T\+H\+E\+R\+\_\+\+C\+L\+A\+SS} as either a mixin or direct class inheritance. If {\ttfamily S\+O\+M\+E\+\_\+\+O\+T\+H\+E\+R\+\_\+\+C\+L\+A\+SS} implements {\ttfamily my\+\_\+property.\+set} then that implementation shall be called, otherwise the call will be propagated to the parent implementation (if any).

{\ttfamily cur\+\_\+klass} must be a valid class in the inheritance hierarchy of {\ttfamily obj\textquotesingle{}s} class. Invalid values will lead to undefined behaviour.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga0bb174743483f07a76b50eba04daf6fa}{efl\+\_\+cast}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+20 
\end{DoxySince}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE.



Referenced by efl\+\_\+debug\+\_\+name\+\_\+get().

\mbox{\Hypertarget{group__Eo_ga49a6f50e0361e9d1975eb6e8bdd5b3c2}\label{group__Eo_ga49a6f50e0361e9d1975eb6e8bdd5b3c2}} 
\index{Eo@{Eo}!efl\+\_\+class\+\_\+get@{efl\+\_\+class\+\_\+get}}
\index{efl\+\_\+class\+\_\+get@{efl\+\_\+class\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+class\+\_\+get()}{efl\_class\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}}$\ast$ efl\+\_\+class\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj }\end{DoxyParamCaption})}



Gets the class of the object. 


\begin{DoxyParams}{Parameters}
{\em obj} & The object to work on \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The object\textquotesingle{}s class.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Efl__Class_ga973b024213e915fb0ee1c9cc54bc559c}{efl\+\_\+class\+\_\+name\+\_\+get()}} 
\end{DoxySeeAlso}


Referenced by elm\+\_\+fileselector\+\_\+path\+\_\+get(), elm\+\_\+fileselector\+\_\+path\+\_\+set(), elm\+\_\+fileselector\+\_\+selected\+\_\+get(), elm\+\_\+fileselector\+\_\+selected\+\_\+paths\+\_\+get(), and elm\+\_\+fileselector\+\_\+selected\+\_\+set().

\mbox{\Hypertarget{group__Eo_gab4ac68670242b467427ea24d4d6be1e2}\label{group__Eo_gab4ac68670242b467427ea24d4d6be1e2}} 
\index{Eo@{Eo}!efl\+\_\+del@{efl\+\_\+del}}
\index{efl\+\_\+del@{efl\+\_\+del}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+del()}{efl\_del()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void efl\+\_\+del (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj }\end{DoxyParamCaption})}



Unrefs the object and reparents it to N\+U\+LL. 

Because \mbox{\hyperlink{group__Eo_gab4ac68670242b467427ea24d4d6be1e2}{efl\+\_\+del()}} unrefs and reparents to N\+U\+LL, it doesn\textquotesingle{}t really delete the object.

This method accepts a const object for convenience, so all objects can be passed to it easily. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em obj} & The object. \\
\hline
\end{DoxyParams}


References efl\+\_\+unref(), and E\+RR.



Referenced by ecore\+\_\+exe\+\_\+free(), ecore\+\_\+timer\+\_\+del(), efl\+\_\+unref(), elm\+\_\+object\+\_\+item\+\_\+del(), evas\+\_\+device\+\_\+del(), evas\+\_\+free(), and evas\+\_\+object\+\_\+del().

\mbox{\Hypertarget{group__Eo_ga5a2ee07b96ae3211f15bd7b0f3bc8ce5}\label{group__Eo_ga5a2ee07b96ae3211f15bd7b0f3bc8ce5}} 
\index{Eo@{Eo}!efl\+\_\+data\+\_\+scope\+\_\+get@{efl\+\_\+data\+\_\+scope\+\_\+get}}
\index{efl\+\_\+data\+\_\+scope\+\_\+get@{efl\+\_\+data\+\_\+scope\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+data\+\_\+scope\+\_\+get()}{efl\_data\_scope\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void$\ast$ efl\+\_\+data\+\_\+scope\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{klass }\end{DoxyParamCaption})}



Get a pointer to the data of an object for a specific class. 

The data reference count is not incremented. The pointer must be used only in the scope of the function and its callees.


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. \\
\hline
{\em klass} & the klass associated with the data. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the data.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga2171db2f78e1891a7a590a2236f16e54}{efl\+\_\+data\+\_\+ref()}} 

\mbox{\hyperlink{group__Eo_gaa4eda33bdeb025571fb664f0240d7f75}{efl\+\_\+data\+\_\+unref()}} 

\mbox{\hyperlink{group__Eo_gae856071f9e8e3d064fab1a5673ee11f9}{efl\+\_\+data\+\_\+scope\+\_\+safe\+\_\+get()}} 
\end{DoxySeeAlso}


References E\+RR.



Referenced by ecore\+\_\+con\+\_\+eet\+\_\+client\+\_\+connect\+\_\+callback\+\_\+add(), ecore\+\_\+con\+\_\+eet\+\_\+client\+\_\+connect\+\_\+callback\+\_\+del(), ecore\+\_\+con\+\_\+eet\+\_\+client\+\_\+disconnect\+\_\+callback\+\_\+add(), ecore\+\_\+con\+\_\+eet\+\_\+client\+\_\+disconnect\+\_\+callback\+\_\+del(), ecore\+\_\+con\+\_\+eet\+\_\+server\+\_\+connect\+\_\+callback\+\_\+add(), ecore\+\_\+con\+\_\+eet\+\_\+server\+\_\+connect\+\_\+callback\+\_\+del(), ecore\+\_\+con\+\_\+eet\+\_\+server\+\_\+disconnect\+\_\+callback\+\_\+add(), ecore\+\_\+con\+\_\+eet\+\_\+server\+\_\+disconnect\+\_\+callback\+\_\+del(), ecore\+\_\+exe\+\_\+auto\+\_\+limits\+\_\+set(), ecore\+\_\+exe\+\_\+callback\+\_\+pre\+\_\+free\+\_\+set(), ecore\+\_\+exe\+\_\+close\+\_\+stdin(), ecore\+\_\+exe\+\_\+data\+\_\+get(), ecore\+\_\+exe\+\_\+data\+\_\+set(), ecore\+\_\+exe\+\_\+event\+\_\+data\+\_\+get(), ecore\+\_\+exe\+\_\+flags\+\_\+get(), ecore\+\_\+exe\+\_\+free(), ecore\+\_\+exe\+\_\+hup(), ecore\+\_\+exe\+\_\+interrupt(), ecore\+\_\+exe\+\_\+kill(), ecore\+\_\+exe\+\_\+pid\+\_\+get(), ecore\+\_\+exe\+\_\+quit(), ecore\+\_\+exe\+\_\+send(), ecore\+\_\+exe\+\_\+signal(), ecore\+\_\+exe\+\_\+tag\+\_\+get(), ecore\+\_\+exe\+\_\+tag\+\_\+set(), ecore\+\_\+exe\+\_\+terminate(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+append(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+cursor\+\_\+content\+\_\+get(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+escaped\+\_\+set(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+hide\+\_\+visible\+\_\+password(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+insert(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+item\+\_\+geometry\+\_\+get(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+item\+\_\+list\+\_\+get(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+style\+\_\+user\+\_\+peek(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+style\+\_\+user\+\_\+pop(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+style\+\_\+user\+\_\+push(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+unescaped\+\_\+get(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+unescaped\+\_\+set(), edje\+\_\+object\+\_\+part\+\_\+text\+\_\+user\+\_\+insert(), edje\+\_\+object\+\_\+text\+\_\+insert\+\_\+filter\+\_\+callback\+\_\+add(), edje\+\_\+object\+\_\+text\+\_\+insert\+\_\+filter\+\_\+callback\+\_\+del(), edje\+\_\+object\+\_\+text\+\_\+insert\+\_\+filter\+\_\+callback\+\_\+del\+\_\+full(), edje\+\_\+object\+\_\+text\+\_\+markup\+\_\+filter\+\_\+callback\+\_\+add(), edje\+\_\+object\+\_\+text\+\_\+markup\+\_\+filter\+\_\+callback\+\_\+del(), edje\+\_\+object\+\_\+text\+\_\+markup\+\_\+filter\+\_\+callback\+\_\+del\+\_\+full(), edje\+\_\+perspective\+\_\+set(), efl\+\_\+net\+\_\+connman\+\_\+access\+\_\+point\+\_\+path\+\_\+get(), efl\+\_\+net\+\_\+connman\+\_\+access\+\_\+point\+\_\+update(), efl\+\_\+net\+\_\+connman\+\_\+control\+\_\+access\+\_\+points\+\_\+reload(), efl\+\_\+net\+\_\+connman\+\_\+control\+\_\+find\+\_\+technology\+\_\+by\+\_\+type(), efl\+\_\+net\+\_\+connman\+\_\+technology\+\_\+path\+\_\+get(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+clear(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+end(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+is\+\_\+empty(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+select\+\_\+all(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+select\+\_\+line(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+select\+\_\+word(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+start(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+text\+\_\+get(), elm\+\_\+image\+\_\+animated\+\_\+get(), elm\+\_\+image\+\_\+animated\+\_\+play\+\_\+get(), elm\+\_\+image\+\_\+animated\+\_\+play\+\_\+set(), elm\+\_\+image\+\_\+animated\+\_\+set(), elm\+\_\+layout\+\_\+content\+\_\+swallow\+\_\+list\+\_\+get(), evas\+\_\+device\+\_\+description\+\_\+set(), evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+set(), evas\+\_\+device\+\_\+list(), evas\+\_\+device\+\_\+name\+\_\+set(), evas\+\_\+device\+\_\+parent\+\_\+set(), evas\+\_\+device\+\_\+pop(), evas\+\_\+device\+\_\+push(), evas\+\_\+device\+\_\+subclass\+\_\+get(), evas\+\_\+device\+\_\+subclass\+\_\+set(), evas\+\_\+engine\+\_\+info\+\_\+get(), evas\+\_\+engine\+\_\+info\+\_\+set(), evas\+\_\+event\+\_\+feed\+\_\+hold(), evas\+\_\+map\+\_\+util\+\_\+points\+\_\+populate\+\_\+from\+\_\+object(), evas\+\_\+map\+\_\+util\+\_\+points\+\_\+populate\+\_\+from\+\_\+object\+\_\+full(), evas\+\_\+object\+\_\+del(), evas\+\_\+object\+\_\+name\+\_\+get(), evas\+\_\+object\+\_\+name\+\_\+set(), evas\+\_\+object\+\_\+ref(), evas\+\_\+object\+\_\+ref\+\_\+get(), evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+description\+\_\+find(), evas\+\_\+object\+\_\+smart\+\_\+callbacks\+\_\+descriptions\+\_\+get(), evas\+\_\+object\+\_\+top\+\_\+at\+\_\+pointer\+\_\+get(), evas\+\_\+object\+\_\+unref(), evas\+\_\+output\+\_\+framespace\+\_\+get(), evas\+\_\+output\+\_\+framespace\+\_\+set(), evas\+\_\+output\+\_\+method\+\_\+get(), evas\+\_\+output\+\_\+method\+\_\+set(), evas\+\_\+output\+\_\+size\+\_\+get(), evas\+\_\+output\+\_\+size\+\_\+set(), evas\+\_\+output\+\_\+viewport\+\_\+get(), evas\+\_\+output\+\_\+viewport\+\_\+set(), evas\+\_\+textblock\+\_\+cursor\+\_\+char\+\_\+coord\+\_\+set(), evas\+\_\+textblock\+\_\+cursor\+\_\+char\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+content\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+eol\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+next(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+prev(), evas\+\_\+textblock\+\_\+cursor\+\_\+free(), evas\+\_\+textblock\+\_\+cursor\+\_\+line\+\_\+coord\+\_\+set(), evas\+\_\+textblock\+\_\+cursor\+\_\+line\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+line\+\_\+set(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+text\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+text\+\_\+length\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+pen\+\_\+geometry\+\_\+get(), and evas\+\_\+textblock\+\_\+style\+\_\+set().

\mbox{\Hypertarget{group__Eo_gae856071f9e8e3d064fab1a5673ee11f9}\label{group__Eo_gae856071f9e8e3d064fab1a5673ee11f9}} 
\index{Eo@{Eo}!efl\+\_\+data\+\_\+scope\+\_\+safe\+\_\+get@{efl\+\_\+data\+\_\+scope\+\_\+safe\+\_\+get}}
\index{efl\+\_\+data\+\_\+scope\+\_\+safe\+\_\+get@{efl\+\_\+data\+\_\+scope\+\_\+safe\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+data\+\_\+scope\+\_\+safe\+\_\+get()}{efl\_data\_scope\_safe\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void$\ast$ efl\+\_\+data\+\_\+scope\+\_\+safe\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{klass }\end{DoxyParamCaption})}



Safely get a pointer to the data of an object for a specific class. 

This call runs a dynamic check and returns N\+U\+LL if there is no valid data to return.

The data reference count is not incremented. The pointer must be used only in the scope of the function and its callees. This function will return N\+U\+LL if there is no data for this class, or if this object is not an instance of the given class. The function will return N\+U\+LL if the data size is 0. Note that objects of class A inheriting from another class C as an interface (like\+: class A(\+B, C) \{\} ) will have no data for class C. This means that efl\+\_\+isa(a, C) will return true but there is no data for C. This function\textquotesingle{}s behaviour is similar to \mbox{\hyperlink{group__Eo_ga5a2ee07b96ae3211f15bd7b0f3bc8ce5}{efl\+\_\+data\+\_\+scope\+\_\+get()}} when running in debug mode (but this prints less error logs).


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. \\
\hline
{\em klass} & the klass associated with the data. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the data or N\+U\+LL in case of error or \$obj was N\+U\+LL.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga5a2ee07b96ae3211f15bd7b0f3bc8ce5}{efl\+\_\+data\+\_\+scope\+\_\+get()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+20 
\end{DoxySince}


References E\+RR.



Referenced by elm\+\_\+layout\+\_\+edje\+\_\+object\+\_\+can\+\_\+access\+\_\+get(), elm\+\_\+layout\+\_\+edje\+\_\+object\+\_\+can\+\_\+access\+\_\+set(), elm\+\_\+layout\+\_\+signal\+\_\+callback\+\_\+add(), elm\+\_\+layout\+\_\+signal\+\_\+callback\+\_\+del(), elm\+\_\+layout\+\_\+sizing\+\_\+restricted\+\_\+eval(), elm\+\_\+object\+\_\+item\+\_\+del(), elm\+\_\+win\+\_\+autodel\+\_\+get(), elm\+\_\+win\+\_\+cocoa\+\_\+window\+\_\+get(), elm\+\_\+win\+\_\+conformant\+\_\+get(), elm\+\_\+win\+\_\+conformant\+\_\+set(), elm\+\_\+win\+\_\+demand\+\_\+attention\+\_\+get(), elm\+\_\+win\+\_\+demand\+\_\+attention\+\_\+set(), elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+get(), elm\+\_\+win\+\_\+floating\+\_\+mode\+\_\+set(), elm\+\_\+win\+\_\+icon\+\_\+name\+\_\+get(), elm\+\_\+win\+\_\+icon\+\_\+name\+\_\+set(), elm\+\_\+win\+\_\+illume\+\_\+command\+\_\+send(), elm\+\_\+win\+\_\+indicator\+\_\+mode\+\_\+get(), elm\+\_\+win\+\_\+indicator\+\_\+mode\+\_\+set(), elm\+\_\+win\+\_\+indicator\+\_\+opacity\+\_\+get(), elm\+\_\+win\+\_\+indicator\+\_\+opacity\+\_\+set(), elm\+\_\+win\+\_\+inlined\+\_\+image\+\_\+object\+\_\+get(), elm\+\_\+win\+\_\+keyboard\+\_\+win\+\_\+get(), elm\+\_\+win\+\_\+keyboard\+\_\+win\+\_\+set(), elm\+\_\+win\+\_\+layer\+\_\+get(), elm\+\_\+win\+\_\+layer\+\_\+set(), elm\+\_\+win\+\_\+lower(), elm\+\_\+win\+\_\+main\+\_\+menu\+\_\+get(), elm\+\_\+win\+\_\+norender\+\_\+get(), elm\+\_\+win\+\_\+norender\+\_\+pop(), elm\+\_\+win\+\_\+norender\+\_\+push(), elm\+\_\+win\+\_\+override\+\_\+get(), elm\+\_\+win\+\_\+override\+\_\+set(), elm\+\_\+win\+\_\+profile\+\_\+get(), elm\+\_\+win\+\_\+profile\+\_\+set(), elm\+\_\+win\+\_\+quickpanel\+\_\+get(), elm\+\_\+win\+\_\+quickpanel\+\_\+priority\+\_\+major\+\_\+get(), elm\+\_\+win\+\_\+quickpanel\+\_\+priority\+\_\+major\+\_\+set(), elm\+\_\+win\+\_\+quickpanel\+\_\+priority\+\_\+minor\+\_\+get(), elm\+\_\+win\+\_\+quickpanel\+\_\+priority\+\_\+minor\+\_\+set(), elm\+\_\+win\+\_\+quickpanel\+\_\+set(), elm\+\_\+win\+\_\+quickpanel\+\_\+zone\+\_\+get(), elm\+\_\+win\+\_\+quickpanel\+\_\+zone\+\_\+set(), elm\+\_\+win\+\_\+render(), elm\+\_\+win\+\_\+resize\+\_\+object\+\_\+add(), elm\+\_\+win\+\_\+resize\+\_\+object\+\_\+del(), elm\+\_\+win\+\_\+rotation\+\_\+get(), elm\+\_\+win\+\_\+rotation\+\_\+set(), elm\+\_\+win\+\_\+rotation\+\_\+with\+\_\+resize\+\_\+set(), elm\+\_\+win\+\_\+screen\+\_\+dpi\+\_\+get(), elm\+\_\+win\+\_\+screen\+\_\+position\+\_\+get(), elm\+\_\+win\+\_\+screen\+\_\+size\+\_\+get(), elm\+\_\+win\+\_\+shaped\+\_\+get(), elm\+\_\+win\+\_\+shaped\+\_\+set(), elm\+\_\+win\+\_\+trap\+\_\+data\+\_\+get(), elm\+\_\+win\+\_\+urgent\+\_\+get(), elm\+\_\+win\+\_\+urgent\+\_\+set(), elm\+\_\+win\+\_\+win32\+\_\+window\+\_\+get(), elm\+\_\+win\+\_\+window\+\_\+id\+\_\+get(), elm\+\_\+win\+\_\+withdrawn\+\_\+get(), elm\+\_\+win\+\_\+withdrawn\+\_\+set(), elm\+\_\+win\+\_\+wl\+\_\+window\+\_\+get(), elm\+\_\+win\+\_\+wm\+\_\+rotation\+\_\+manual\+\_\+rotation\+\_\+done(), elm\+\_\+win\+\_\+wm\+\_\+rotation\+\_\+manual\+\_\+rotation\+\_\+done\+\_\+get(), elm\+\_\+win\+\_\+wm\+\_\+rotation\+\_\+manual\+\_\+rotation\+\_\+done\+\_\+set(), elm\+\_\+win\+\_\+wm\+\_\+rotation\+\_\+preferred\+\_\+rotation\+\_\+get(), elm\+\_\+win\+\_\+wm\+\_\+rotation\+\_\+supported\+\_\+get(), elm\+\_\+win\+\_\+xwindow\+\_\+get(), emotion\+\_\+object\+\_\+image\+\_\+get(), and evas\+\_\+object\+\_\+smart\+\_\+member\+\_\+del().

\mbox{\Hypertarget{group__Eo_ga88cf6b45917972ce49f300a046273127}\label{group__Eo_ga88cf6b45917972ce49f300a046273127}} 
\index{Eo@{Eo}!efl\+\_\+data\+\_\+xref\+\_\+internal@{efl\+\_\+data\+\_\+xref\+\_\+internal}}
\index{efl\+\_\+data\+\_\+xref\+\_\+internal@{efl\+\_\+data\+\_\+xref\+\_\+internal}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+data\+\_\+xref\+\_\+internal()}{efl\_data\_xref\_internal()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void$\ast$ efl\+\_\+data\+\_\+xref\+\_\+internal (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{int}]{line,  }\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$}]{klass,  }\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{ref\+\_\+obj }\end{DoxyParamCaption})}



Get a pointer to the data of an object for a specific class and increment the data reference count. 


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. \\
\hline
{\em klass} & the klass associated with the data. \\
\hline
{\em ref\+\_\+obj} & the object that references the data. \\
\hline
{\em file} & the call\textquotesingle{}s filename. \\
\hline
{\em line} & the call\textquotesingle{}s line number. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a pointer to the data.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga73887acd3ce2f7c82d027c2ad46809a0}{efl\+\_\+data\+\_\+xunref\+\_\+internal()}} 
\end{DoxySeeAlso}


References E\+RR.

\mbox{\Hypertarget{group__Eo_ga73887acd3ce2f7c82d027c2ad46809a0}\label{group__Eo_ga73887acd3ce2f7c82d027c2ad46809a0}} 
\index{Eo@{Eo}!efl\+\_\+data\+\_\+xunref\+\_\+internal@{efl\+\_\+data\+\_\+xunref\+\_\+internal}}
\index{efl\+\_\+data\+\_\+xunref\+\_\+internal@{efl\+\_\+data\+\_\+xunref\+\_\+internal}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+data\+\_\+xunref\+\_\+internal()}{efl\_data\_xunref\_internal()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void efl\+\_\+data\+\_\+xunref\+\_\+internal (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{void $\ast$}]{data,  }\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{ref\+\_\+obj }\end{DoxyParamCaption})}



Decrement the object data reference count by 1. 


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. \\
\hline
{\em data} & a pointer to the data to unreference. \\
\hline
{\em file} & the call\textquotesingle{}s filename. \\
\hline
{\em line} & the call\textquotesingle{}s line number.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga88cf6b45917972ce49f300a046273127}{efl\+\_\+data\+\_\+xref\+\_\+internal()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gae5c8819ec60844eea61c3ed971bb6b5d}\label{group__Eo_gae5c8819ec60844eea61c3ed971bb6b5d}} 
\index{Eo@{Eo}!efl\+\_\+ref@{efl\+\_\+ref}}
\index{efl\+\_\+ref@{efl\+\_\+ref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+ref()}{efl\_ref()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}}$\ast$ efl\+\_\+ref (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj }\end{DoxyParamCaption})}



Increment the object\textquotesingle{}s reference count by 1. 


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The object passed.
\end{DoxyReturn}
It\textquotesingle{}s very easy to get a refcount leak and start leaking memory because of a forgotten unref or an extra ref. Both efl\+\_\+xref and efl\+\_\+xunref that make debugging easier in these situations. These functions should only be used on a small scale i.\+e at the start of some section in which an object may be freed unless you really know what you are doing.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\+\_\+unref()}} 

\mbox{\hyperlink{group__Eo_ga2675f87cd4fe5db674bfd6c2bb4ebede}{efl\+\_\+ref\+\_\+count()}} 
\end{DoxySeeAlso}


References E\+I\+N\+A\+\_\+\+U\+N\+L\+I\+K\+E\+LY.



Referenced by efl\+\_\+xref\+\_\+internal(), evas\+\_\+device\+\_\+parent\+\_\+set(), evas\+\_\+device\+\_\+push(), evas\+\_\+event\+\_\+feed\+\_\+hold(), evas\+\_\+object\+\_\+ref(), and evas\+\_\+output\+\_\+method\+\_\+set().

\mbox{\Hypertarget{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}\label{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}} 
\index{Eo@{Eo}!efl\+\_\+unref@{efl\+\_\+unref}}
\index{efl\+\_\+unref@{efl\+\_\+unref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+unref()}{efl\_unref()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void efl\+\_\+unref (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj }\end{DoxyParamCaption})}



Decrement the object\textquotesingle{}s reference count by 1 and free it if needed. 


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gae5c8819ec60844eea61c3ed971bb6b5d}{efl\+\_\+ref()}} 

\mbox{\hyperlink{group__Eo_ga2675f87cd4fe5db674bfd6c2bb4ebede}{efl\+\_\+ref\+\_\+count()}} 
\end{DoxySeeAlso}


References efl\+\_\+del(), efl\+\_\+event\+\_\+callback\+\_\+call(), E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+RR, E\+I\+N\+A\+\_\+\+T\+R\+UE, E\+I\+N\+A\+\_\+\+U\+N\+L\+I\+K\+E\+LY, and E\+RR.



Referenced by ecore\+\_\+con\+\_\+eet\+\_\+server\+\_\+free(), ecore\+\_\+timer\+\_\+del(), efl\+\_\+del(), efl\+\_\+xunref(), evas\+\_\+device\+\_\+del(), evas\+\_\+device\+\_\+pop(), evas\+\_\+event\+\_\+feed\+\_\+hold(), evas\+\_\+free(), and evas\+\_\+object\+\_\+unref().

\mbox{\Hypertarget{group__Eo_ga2675f87cd4fe5db674bfd6c2bb4ebede}\label{group__Eo_ga2675f87cd4fe5db674bfd6c2bb4ebede}} 
\index{Eo@{Eo}!efl\+\_\+ref\+\_\+count@{efl\+\_\+ref\+\_\+count}}
\index{efl\+\_\+ref\+\_\+count@{efl\+\_\+ref\+\_\+count}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+ref\+\_\+count()}{efl\_ref\_count()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} int efl\+\_\+ref\+\_\+count (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj }\end{DoxyParamCaption})}



Return the ref count of the object passed. 


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the ref count of the object.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gae5c8819ec60844eea61c3ed971bb6b5d}{efl\+\_\+ref()}} 

\mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\+\_\+unref()}} 
\end{DoxySeeAlso}


Referenced by efl\+\_\+object\+\_\+shutdown(), and elm\+\_\+object\+\_\+item\+\_\+del().

\mbox{\Hypertarget{group__Eo_ga27ea7f6d04a3b552db03e5fc3814ff3d}\label{group__Eo_ga27ea7f6d04a3b552db03e5fc3814ff3d}} 
\index{Eo@{Eo}!efl\+\_\+del\+\_\+intercept\+\_\+set@{efl\+\_\+del\+\_\+intercept\+\_\+set}}
\index{efl\+\_\+del\+\_\+intercept\+\_\+set@{efl\+\_\+del\+\_\+intercept\+\_\+set}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+del\+\_\+intercept\+\_\+set()}{efl\_del\_intercept\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void efl\+\_\+del\+\_\+intercept\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{\mbox{\hyperlink{group__Eo_gab02fa807a9c63bbc357b5abf0e52893a}{Efl\+\_\+\+Del\+\_\+\+Intercept}}}]{del\+\_\+intercept\+\_\+func }\end{DoxyParamCaption})}



Set a deletion interceptor function. 


\begin{DoxyParams}{Parameters}
{\em obj} & The object to set the interceptor on. \\
\hline
{\em del\+\_\+intercept\+\_\+func} & The interceptor function to call.\\
\hline
\end{DoxyParams}
This sets the function {\ttfamily del\+\_\+intercept\+\_\+func} to be called when an object is about to go from a reference count of 1 to 0, thus triggering actual destruction of the object. Instead of going to a reference count of 0 and being destroyed, the object will stay alive with a reference count of 1 and this intercept function will be called instead. The interceptor function handles any further deletion of of the object from here.

Note that by default objects have no interceptor function set and thus will be destroyed as normal. To return an object to this state, simply set the {\ttfamily del\+\_\+intercept\+\_\+func} to N\+U\+LL which is the default.

A good use for this feature is to ensure an object is destroyed by its owning main loop and not in a foreign loop. This makes it possible to safely unrefor delete objects from any loop as an interceptor can be set on an object that will abort destruction and instead queue the object on its owning loop to be destroyed at some time in the future and now set the intercept function to N\+U\+LL so it is not called again on the next \char`\"{}real deletion\char`\"{}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga0f64877264de9cc57b1032e3f0650e39}{efl\+\_\+del\+\_\+intercept\+\_\+get()}} 

\mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\+\_\+unref()}} 

\mbox{\hyperlink{group__Eo_gab4ac68670242b467427ea24d4d6be1e2}{efl\+\_\+del()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga0f64877264de9cc57b1032e3f0650e39}\label{group__Eo_ga0f64877264de9cc57b1032e3f0650e39}} 
\index{Eo@{Eo}!efl\+\_\+del\+\_\+intercept\+\_\+get@{efl\+\_\+del\+\_\+intercept\+\_\+get}}
\index{efl\+\_\+del\+\_\+intercept\+\_\+get@{efl\+\_\+del\+\_\+intercept\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+del\+\_\+intercept\+\_\+get()}{efl\_del\_intercept\_get()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_gab02fa807a9c63bbc357b5abf0e52893a}{Efl\+\_\+\+Del\+\_\+\+Intercept}} efl\+\_\+del\+\_\+intercept\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj }\end{DoxyParamCaption})}



Get the deletion interceptor function. 


\begin{DoxyParams}{Parameters}
{\em obj} & The object to get the interceptor of \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The intercept function or N\+U\+LL if none is set.
\end{DoxyReturn}
This returns the interceptor function set by \mbox{\hyperlink{group__Eo_ga27ea7f6d04a3b552db03e5fc3814ff3d}{efl\+\_\+del\+\_\+intercept\+\_\+set()}}. Note that objects by default have no interceptor (N\+U\+LL) set but certain classes may set one up in a constructor. Make sure that the interceptor function knows if this has happened. If you want to override the interceptor be sure to call it after your own interceptor function has finished. It\textquotesingle{}s generally be a bad idea to override these functions however.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga27ea7f6d04a3b552db03e5fc3814ff3d}{efl\+\_\+del\+\_\+intercept\+\_\+set()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gab1c87caaf6c192b1ef09c5057ec53592}\label{group__Eo_gab1c87caaf6c192b1ef09c5057ec53592}} 
\index{Eo@{Eo}!efl\+\_\+reuse@{efl\+\_\+reuse}}
\index{efl\+\_\+reuse@{efl\+\_\+reuse}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+reuse()}{efl\_reuse()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void efl\+\_\+reuse (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj }\end{DoxyParamCaption})}



Clears the object so it can be reused (for example in a cache). 


\begin{DoxyParams}{Parameters}
{\em obj} & The object to mark for reusal.\\
\hline
\end{DoxyParams}
This assumes the destructor has been called on the object so it should probably only be used from the del intercept.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga27ea7f6d04a3b552db03e5fc3814ff3d}{efl\+\_\+del\+\_\+intercept\+\_\+set()}} 
\end{DoxySeeAlso}


References efl\+\_\+object\+\_\+override().

\mbox{\Hypertarget{group__Eo_ga71c49a9a9878a3f60e77c071a929d493}\label{group__Eo_ga71c49a9a9878a3f60e77c071a929d493}} 
\index{Eo@{Eo}!efl\+\_\+xref\+\_\+internal@{efl\+\_\+xref\+\_\+internal}}
\index{efl\+\_\+xref\+\_\+internal@{efl\+\_\+xref\+\_\+internal}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+xref\+\_\+internal()}{efl\_xref\_internal()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}}$\ast$ efl\+\_\+xref\+\_\+internal (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{int}]{line,  }\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{ref\+\_\+obj }\end{DoxyParamCaption})}



Increment the object\textquotesingle{}s reference count by 1 (and associate the ref with ref\+\_\+obj). 


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. \\
\hline
{\em ref\+\_\+obj} & the object that references obj. \\
\hline
{\em file} & the call\textquotesingle{}s filename. \\
\hline
{\em line} & the call\textquotesingle{}s line number. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The object passed (obj)
\end{DoxyReturn}
Do not use this function, use \mbox{\hyperlink{group__Eo_ga68644534eb49539ab5c0d8e937482385}{efl\+\_\+xref}} instead. A compile flag may make it and eobj\+\_\+xunref() behave the same as eobj\+\_\+ref() and eobj\+\_\+unref() respectively. This should be used wherever possible.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga3cab9743014362a121533342f1ce9dcf}{efl\+\_\+xunref()}} 
\end{DoxySeeAlso}


References efl\+\_\+ref(), E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+ET, and eina\+\_\+inlist\+\_\+prepend().

\mbox{\Hypertarget{group__Eo_ga3cab9743014362a121533342f1ce9dcf}\label{group__Eo_ga3cab9743014362a121533342f1ce9dcf}} 
\index{Eo@{Eo}!efl\+\_\+xunref@{efl\+\_\+xunref}}
\index{efl\+\_\+xunref@{efl\+\_\+xunref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+xunref()}{efl\_xunref()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void efl\+\_\+xunref (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{ref\+\_\+obj }\end{DoxyParamCaption})}



Decrement the object\textquotesingle{}s reference count by 1 and free it if needed. 

Will free the ref associated with ref\+\_\+obj). 
\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. \\
\hline
{\em ref\+\_\+obj} & the object that references obj.\\
\hline
\end{DoxyParams}
This function only enforces the checks for object association. Don\textquotesingle{}t rely on it. If such enforces are compiled out this function behaves the same as \mbox{\hyperlink{group__Eo_gafa5c632d4b211bb80eb1826ce1afa7a2}{efl\+\_\+unref()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga71c49a9a9878a3f60e77c071a929d493}{efl\+\_\+xref\+\_\+internal()}} 
\end{DoxySeeAlso}


References efl\+\_\+unref(), eina\+\_\+freeq\+\_\+ptr\+\_\+main\+\_\+add(), E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+CH, E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+ET, eina\+\_\+inlist\+\_\+remove(), and E\+RR.

\mbox{\Hypertarget{group__Eo_ga84fef8e0a972d66374d38ec7fcf253d1}\label{group__Eo_ga84fef8e0a972d66374d38ec7fcf253d1}} 
\index{Eo@{Eo}!efl\+\_\+wref\+\_\+add@{efl\+\_\+wref\+\_\+add}}
\index{efl\+\_\+wref\+\_\+add@{efl\+\_\+wref\+\_\+add}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+wref\+\_\+add()}{efl\_wref\_add()}}
{\footnotesize\ttfamily E\+O\+A\+PI void efl\+\_\+wref\+\_\+add (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{Efl\+\_\+\+Object $\ast$$\ast$}]{wref }\end{DoxyParamCaption})}



Add a new weak reference to obj. 

This function registers the object handle pointed by wref to obj so when obj is deleted, it\textquotesingle{}ll be updated to N\+U\+LL. The function should be used when you want to keep track of an object in a safe way but you don\textquotesingle{}t want to prevent it from being freed.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em wref} & The weak ref \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eo_ga00d1e02482a74dbc5635edf3f9ef861e}\label{group__Eo_ga00d1e02482a74dbc5635edf3f9ef861e}} 
\index{Eo@{Eo}!efl\+\_\+wref\+\_\+del@{efl\+\_\+wref\+\_\+del}}
\index{efl\+\_\+wref\+\_\+del@{efl\+\_\+wref\+\_\+del}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+wref\+\_\+del()}{efl\_wref\_del()}}
{\footnotesize\ttfamily E\+O\+A\+PI void efl\+\_\+wref\+\_\+del (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{Efl\+\_\+\+Object $\ast$$\ast$}]{wref }\end{DoxyParamCaption})}



Delete the weak reference passed. 

This function will set $\ast$wref to N\+U\+LL after its execution.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em wref} & The weak ref \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eo_gad6745c23dad3578ff5df8b4498509cb1}\label{group__Eo_gad6745c23dad3578ff5df8b4498509cb1}} 
\index{Eo@{Eo}!efl\+\_\+key\+\_\+data\+\_\+set@{efl\+\_\+key\+\_\+data\+\_\+set}}
\index{efl\+\_\+key\+\_\+data\+\_\+set@{efl\+\_\+key\+\_\+data\+\_\+set}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+key\+\_\+data\+\_\+set()}{efl\_key\_data\_set()}}
{\footnotesize\ttfamily E\+O\+A\+PI void efl\+\_\+key\+\_\+data\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const char $\ast$}]{key,  }\item[{const void $\ast$}]{data }\end{DoxyParamCaption})}



Generic data with string key on an object. 

The user is in charge of freeing the data.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em key} & The key associated with the data \\
\hline
\mbox{\tt in}  & {\em data} & The data to set \\
\hline
\end{DoxyParams}


Referenced by ecore\+\_\+con\+\_\+eet\+\_\+data\+\_\+set(), elm\+\_\+drag\+\_\+item\+\_\+container\+\_\+add(), elm\+\_\+drop\+\_\+item\+\_\+container\+\_\+add(), elm\+\_\+drop\+\_\+target\+\_\+add(), elm\+\_\+drop\+\_\+target\+\_\+del(), evas\+\_\+object\+\_\+data\+\_\+del(), and evas\+\_\+object\+\_\+data\+\_\+set().

\mbox{\Hypertarget{group__Eo_gab88da320b2aa6d7db69a94cadf555707}\label{group__Eo_gab88da320b2aa6d7db69a94cadf555707}} 
\index{Eo@{Eo}!efl\+\_\+key\+\_\+data\+\_\+get@{efl\+\_\+key\+\_\+data\+\_\+get}}
\index{efl\+\_\+key\+\_\+data\+\_\+get@{efl\+\_\+key\+\_\+data\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+key\+\_\+data\+\_\+get()}{efl\_key\_data\_get()}}
{\footnotesize\ttfamily E\+O\+A\+PI void$\ast$ efl\+\_\+key\+\_\+data\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const char $\ast$}]{key }\end{DoxyParamCaption})}



Generic data with string key on an object. 

The user is in charge of freeing the data.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em key} & The key associated with the data\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The data to set 
\end{DoxyReturn}


Referenced by ecore\+\_\+con\+\_\+eet\+\_\+data\+\_\+get(), ecore\+\_\+timer\+\_\+del(), elm\+\_\+drag\+\_\+item\+\_\+container\+\_\+add(), elm\+\_\+drop\+\_\+item\+\_\+container\+\_\+add(), elm\+\_\+drop\+\_\+target\+\_\+add(), elm\+\_\+drop\+\_\+target\+\_\+del(), evas\+\_\+object\+\_\+data\+\_\+del(), and evas\+\_\+object\+\_\+data\+\_\+get().

\mbox{\Hypertarget{group__Eo_gab7d84b328651123292053743f0039fae}\label{group__Eo_gab7d84b328651123292053743f0039fae}} 
\index{Eo@{Eo}!efl\+\_\+key\+\_\+ref\+\_\+set@{efl\+\_\+key\+\_\+ref\+\_\+set}}
\index{efl\+\_\+key\+\_\+ref\+\_\+set@{efl\+\_\+key\+\_\+ref\+\_\+set}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+key\+\_\+ref\+\_\+set()}{efl\_key\_ref\_set()}}
{\footnotesize\ttfamily E\+O\+A\+PI void efl\+\_\+key\+\_\+ref\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const char $\ast$}]{key,  }\item[{const Efl\+\_\+\+Object $\ast$}]{objdata }\end{DoxyParamCaption})}



Generic object reference with string key to object. 

The object will be automatically ref\textquotesingle{}d when set and unref\textquotesingle{}d when replaced or deleted or when the referring object is deleted. If the referenced object is deleted, then the key is deleted automatically.

This is the same key store used by key\+\_\+data and key\+\_\+value. Keys are shared and can store only one thing.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em key} & The key associated with the object ref \\
\hline
\mbox{\tt in}  & {\em objdata} & The object to set \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eo_ga6002db576de0da27695181e715dd5241}\label{group__Eo_ga6002db576de0da27695181e715dd5241}} 
\index{Eo@{Eo}!efl\+\_\+key\+\_\+ref\+\_\+get@{efl\+\_\+key\+\_\+ref\+\_\+get}}
\index{efl\+\_\+key\+\_\+ref\+\_\+get@{efl\+\_\+key\+\_\+ref\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+key\+\_\+ref\+\_\+get()}{efl\_key\_ref\_get()}}
{\footnotesize\ttfamily E\+O\+A\+PI Efl\+\_\+\+Object$\ast$ efl\+\_\+key\+\_\+ref\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const char $\ast$}]{key }\end{DoxyParamCaption})}



Generic object reference with string key to object. 

The object will be automatically ref\textquotesingle{}d when set and unref\textquotesingle{}d when replaced or deleted or when the referring object is deleted. If the referenced object is deleted then the key is deleted automatically.

This is the same key store used by key\+\_\+data and key\+\_\+value. Keys are shared and can store only one thing.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em key} & The key associated with the object ref\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The object to set 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eo_gac3132c3cad24edd19a15d89cf4430ab2}\label{group__Eo_gac3132c3cad24edd19a15d89cf4430ab2}} 
\index{Eo@{Eo}!efl\+\_\+key\+\_\+wref\+\_\+set@{efl\+\_\+key\+\_\+wref\+\_\+set}}
\index{efl\+\_\+key\+\_\+wref\+\_\+set@{efl\+\_\+key\+\_\+wref\+\_\+set}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+key\+\_\+wref\+\_\+set()}{efl\_key\_wref\_set()}}
{\footnotesize\ttfamily E\+O\+A\+PI void efl\+\_\+key\+\_\+wref\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const char $\ast$}]{key,  }\item[{const Efl\+\_\+\+Object $\ast$}]{objdata }\end{DoxyParamCaption})}



Generic weak object reference with string key to object. 

The object key will be removed if the object is removed, but will not take or removed references like key\+\_\+obj.

This is the same key store used by key\+\_\+data and key\+\_\+value. Keys are shared and can store only one thing.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em key} & The key associated with the object ref \\
\hline
\mbox{\tt in}  & {\em objdata} & The object to set \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eo_ga5875683acc519b9b00cb2297a2b0b086}\label{group__Eo_ga5875683acc519b9b00cb2297a2b0b086}} 
\index{Eo@{Eo}!efl\+\_\+key\+\_\+wref\+\_\+get@{efl\+\_\+key\+\_\+wref\+\_\+get}}
\index{efl\+\_\+key\+\_\+wref\+\_\+get@{efl\+\_\+key\+\_\+wref\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+key\+\_\+wref\+\_\+get()}{efl\_key\_wref\_get()}}
{\footnotesize\ttfamily E\+O\+A\+PI Efl\+\_\+\+Object$\ast$ efl\+\_\+key\+\_\+wref\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const char $\ast$}]{key }\end{DoxyParamCaption})}



Generic weak object reference with string key to object. 

The object key will be removed if the object is removed, but will not take or removed references like key\+\_\+obj.

This is the same key store used by key\+\_\+data and key\+\_\+value. Keys are shared and can store only one thing


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em key} & The key associated with the object ref\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The object to set 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eo_ga4aa22812f8b807cecb129a13bca1e0e3}\label{group__Eo_ga4aa22812f8b807cecb129a13bca1e0e3}} 
\index{Eo@{Eo}!efl\+\_\+key\+\_\+value\+\_\+set@{efl\+\_\+key\+\_\+value\+\_\+set}}
\index{efl\+\_\+key\+\_\+value\+\_\+set@{efl\+\_\+key\+\_\+value\+\_\+set}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+key\+\_\+value\+\_\+set()}{efl\_key\_value\_set()}}
{\footnotesize\ttfamily E\+O\+A\+PI void efl\+\_\+key\+\_\+value\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const char $\ast$}]{key,  }\item[{\mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} $\ast$}]{value }\end{DoxyParamCaption})}



Value on with string key on the object. 

This stores the value with the given string key on the object and it will be freed when replaced or deleted, or when the referring object is deleted.

This is the same key store used by key\+\_\+data and key\+\_\+obj. Keys are shared and can store only one thing.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em key} & The key associated with the value \\
\hline
\mbox{\tt in}  & {\em value} & The value to set \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{group__Eo_gab5d468271184556eb64c8c7326d622a0}\label{group__Eo_gab5d468271184556eb64c8c7326d622a0}} 
\index{Eo@{Eo}!efl\+\_\+key\+\_\+value\+\_\+get@{efl\+\_\+key\+\_\+value\+\_\+get}}
\index{efl\+\_\+key\+\_\+value\+\_\+get@{efl\+\_\+key\+\_\+value\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+key\+\_\+value\+\_\+get()}{efl\_key\_value\_get()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}}$\ast$ efl\+\_\+key\+\_\+value\+\_\+get (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{const char $\ast$}]{key }\end{DoxyParamCaption})}



Value on with string key on the object. 

This stores the value with the given string key on the object and it will be freed when replaced or deleted, or when the referring object is deleted.

This is the same key store used by key\+\_\+data and key\+\_\+obj. Keys are shared and can store only one thing.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em key} & The key associated with the value\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The value to set 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eo_ga8d0ac6cdbfebb9cc6efc7e2fd1e7daae}\label{group__Eo_ga8d0ac6cdbfebb9cc6efc7e2fd1e7daae}} 
\index{Eo@{Eo}!efl\+\_\+manual\+\_\+free\+\_\+set@{efl\+\_\+manual\+\_\+free\+\_\+set}}
\index{efl\+\_\+manual\+\_\+free\+\_\+set@{efl\+\_\+manual\+\_\+free\+\_\+set}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+manual\+\_\+free\+\_\+set()}{efl\_manual\_free\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void efl\+\_\+manual\+\_\+free\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}}}]{manual\+\_\+free }\end{DoxyParamCaption})}



Enable or disable the manual free feature. 


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. \\
\hline
{\em manual\+\_\+free} & indicates if the free is manual (E\+I\+N\+A\+\_\+\+T\+R\+UE) or automatic (E\+I\+N\+A\+\_\+\+F\+A\+L\+SE).\\
\hline
\end{DoxyParams}
The developer is in charge of calling the function efl\+\_\+manual\+\_\+free to free the memory allocated for this object.

Do not use this unless you really know what you are doing. It\textquotesingle{}s used by Evas because evas wants to keep its private data available even after the object is deleted. Setting this to true makes Eo destroy the object but doesn\textquotesingle{}t free the private data nor the object itself.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga68f4d6a4d357d0521e46984a6edb296c}{efl\+\_\+manual\+\_\+free()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga68f4d6a4d357d0521e46984a6edb296c}\label{group__Eo_ga68f4d6a4d357d0521e46984a6edb296c}} 
\index{Eo@{Eo}!efl\+\_\+manual\+\_\+free@{efl\+\_\+manual\+\_\+free}}
\index{efl\+\_\+manual\+\_\+free@{efl\+\_\+manual\+\_\+free}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+manual\+\_\+free()}{efl\_manual\_free()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+manual\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj }\end{DoxyParamCaption})}



Frees the object. 


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on. This function must be called by the developer if the function efl\+\_\+manual\+\_\+free\+\_\+set has been called beforehand with the parameter E\+I\+N\+A\+\_\+\+T\+R\+UE. An error will display if this function is called when the manual free option is not set to E\+I\+N\+A\+\_\+\+T\+R\+UE or the number of refs is not 0. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+UE if successfully freed. E\+I\+N\+A\+\_\+\+F\+A\+L\+SE otherwise.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga8d0ac6cdbfebb9cc6efc7e2fd1e7daae}{efl\+\_\+manual\+\_\+free\+\_\+set()}} 
\end{DoxySeeAlso}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, E\+I\+N\+A\+\_\+\+T\+R\+UE, and E\+RR.

\mbox{\Hypertarget{group__Eo_ga78cbe22590d5ab699314a75a36e50cc9}\label{group__Eo_ga78cbe22590d5ab699314a75a36e50cc9}} 
\index{Eo@{Eo}!efl\+\_\+destructed\+\_\+is@{efl\+\_\+destructed\+\_\+is}}
\index{efl\+\_\+destructed\+\_\+is@{efl\+\_\+destructed\+\_\+is}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+destructed\+\_\+is()}{efl\_destructed\_is()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+destructed\+\_\+is (\begin{DoxyParamCaption}\item[{const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj }\end{DoxyParamCaption})}



Checks if the object was already descructed (only relevant for manual\+\_\+free objects). 


\begin{DoxyParams}{Parameters}
{\em obj} & the object to check. This function checks if the object was already destructed (but not alraedy freed). It should only be used with objects that are supposed to be manually freed but are not yet free such as those which have been destroyed.\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga8d0ac6cdbfebb9cc6efc7e2fd1e7daae}{efl\+\_\+manual\+\_\+free\+\_\+set()}} 
\end{DoxySeeAlso}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+SE.



\subsection{Variable Documentation}
\mbox{\Hypertarget{group__Eo_ga330cefab26ab90f1153459ab69ab41d8}\label{group__Eo_ga330cefab26ab90f1153459ab69ab41d8}} 
\index{Eo@{Eo}!\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock@{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}}
\index{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock@{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}{\_efl\_class\_creation\_lock}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} Eina\+\_\+\+Lock \+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}



This variable is used for locking purposes in the class\+\_\+get function defined in \mbox{\hyperlink{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}{E\+F\+L\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}}. 

This is just to work around the fact that you need to init locks before using them. Don\textquotesingle{}t touch it if you don\textquotesingle{}t know what you are doing. 

Referenced by efl\+\_\+object\+\_\+init().

\mbox{\Hypertarget{group__Eo_gaae670ec969c91058fba6351d20d53406}\label{group__Eo_gaae670ec969c91058fba6351d20d53406}} 
\index{Eo@{Eo}!\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation@{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation}}
\index{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation@{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation}{\_efl\_object\_init\_generation}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} unsigned int \+\_\+efl\+\_\+object\+\_\+init\+\_\+generation}



This variable stores the current eo init generation. 

In other words how many times you have completed full init/shutdown cycles. This starts at 1 and is incremeted on every call to shutdown that actually shuts down eo. \mbox{\Hypertarget{group__Eo_gae7c7ab42a04c67bac3cbe33e0cd46dc4}\label{group__Eo_gae7c7ab42a04c67bac3cbe33e0cd46dc4}} 
\index{Eo@{Eo}!desc@{desc}}
\index{desc@{desc}!Eo@{Eo}}
\subsubsection{\texorpdfstring{desc}{desc}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const Efl\+\_\+\+Event\+\_\+\+Description$\ast$ \+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+::desc}



The event description. 



Referenced by efl\+\_\+callbacks\+\_\+cmp().

\mbox{\Hypertarget{group__Eo_ga45deafc2a9e98bae22672901e43d7228}\label{group__Eo_ga45deafc2a9e98bae22672901e43d7228}} 
\index{Eo@{Eo}!func@{func}}
\index{func@{func}!Eo@{Eo}}
\subsubsection{\texorpdfstring{func}{func}\hspace{0.1cm}{\footnotesize\ttfamily [1/3]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}} \+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+::func}



The callback function. 

\mbox{\Hypertarget{group__Eo_gab347ee117d719efc85fa73e73f457324}\label{group__Eo_gab347ee117d719efc85fa73e73f457324}} 
\index{Eo@{Eo}!desc@{desc}}
\index{desc@{desc}!Eo@{Eo}}
\subsubsection{\texorpdfstring{desc}{desc}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const Efl\+\_\+\+Event\+\_\+\+Description$\ast$ \+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+\_\+\+Full\+::desc}



The event description. 

\mbox{\Hypertarget{group__Eo_gaeb94c553ae7060a5c8c0f1a8a1c360c6}\label{group__Eo_gaeb94c553ae7060a5c8c0f1a8a1c360c6}} 
\index{Eo@{Eo}!func@{func}}
\index{func@{func}!Eo@{Eo}}
\subsubsection{\texorpdfstring{func}{func}\hspace{0.1cm}{\footnotesize\ttfamily [2/3]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}} \+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+\_\+\+Full\+::func}



$<$ The priorit of the event 

The callback function. \mbox{\Hypertarget{group__Eo_gab53eaacef28270e8713808448db4a963}\label{group__Eo_gab53eaacef28270e8713808448db4a963}} 
\index{Eo@{Eo}!success@{success}}
\index{success@{success}!Eo@{Eo}}
\subsubsection{\texorpdfstring{success}{success}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}}($\ast$ \+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::success) (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$o, const \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} value)}



Called on success (value.\+type is not {\ttfamily E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+R\+R\+OR}). 

If {\ttfamily success\+\_\+type} is not N\+U\+LL, then the value is guaranteed to be of that type. If not, it will trigger {\ttfamily error} with {\ttfamily E\+I\+N\+V\+AL}.

After this function returns, {\ttfamily free} callback is called if provided.

\begin{DoxyNote}{Note}
This function is always called from a safe context (main loop or some platform defined safe context).
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em o} & The object used to create the link in \mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc()}} or \mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array()}}. \\
\hline
{\em value} & The operation result \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An Eina\+\_\+\+Value to pass to the next Eina\+\_\+\+Future in the chain (if any). If there is no need to convert the received value, it\textquotesingle{}s {\bfseries recommended} to pass-\/thru {\ttfamily value} argument. If you need to convert to a different type or generate a new value, use {\ttfamily \mbox{\hyperlink{group__Eina__Value__Value__Group_gab5c6558b1b8be2ad597d71a765cbf5f6}{eina\+\_\+value\+\_\+setup()}}} on {\bfseries another} Eina\+\_\+\+Value and return it. By returning a promise Eina\+\_\+\+Value (\mbox{\hyperlink{group__Eina__Future_ga6151e485fad1e3623c365d11e319d7da}{eina\+\_\+promise\+\_\+as\+\_\+value()}}) the whole chain will wait until the promise is resolved in order to continue execution. Note that the value contents must survive this function scope. In other words, do {\bfseries not} use stack allocated blobs, arrays, structures or types that keeps references to memory you assign. Values will be automatically cleaned up using {\ttfamily \mbox{\hyperlink{group__Eina__Value__Value__Group_ga940660709a2862bafac92f47bb721a68}{eina\+\_\+value\+\_\+flush()}}} once they are unused (no more future or futures returned a new value). 
\end{DoxyReturn}


Referenced by efl\+\_\+future\+\_\+chain\+\_\+array().

\mbox{\Hypertarget{group__Eo_ga561558639d4370ec5c7e8ed999427fb7}\label{group__Eo_ga561558639d4370ec5c7e8ed999427fb7}} 
\index{Eo@{Eo}!error@{error}}
\index{error@{error}!Eo@{Eo}}
\subsubsection{\texorpdfstring{error}{error}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}}($\ast$ \+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::error) (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$o, \mbox{\hyperlink{group__Eina__Error__Group_ga95b3cbb33e987e7d92a81ea785001686}{Eina\+\_\+\+Error}} error)}



Called on error (value.\+type is {\ttfamily E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+R\+R\+OR}). 

This function can return another error then propagate or convert it. However it may also return a non-\/error, in which case the next future in the chain will receive a regular value, which may call its {\ttfamily success}.

If this function is not provided, then it will pass thru the error to the next error handler.

It may be called with {\ttfamily E\+I\+N\+V\+AL} if {\ttfamily success\+\_\+type} is provided and doesn\textquotesingle{}t match the received type.

It may be called with {\ttfamily E\+C\+A\+N\+C\+E\+L\+ED} if future was canceled.

It may be called with {\ttfamily E\+N\+O\+M\+EM} if memory allocation failed during callback creation.

After this function returns, {\ttfamily free} callback is called if provided.

\begin{DoxyNote}{Note}
On future creation errors and future cancellation this function is called from the current context with the following errors respectively\+: {\ttfamily E\+I\+N\+V\+AL}, {\ttfamily E\+N\+O\+M\+EM} and {\ttfamily E\+C\+A\+N\+C\+E\+L\+ED}. Otherwise this function is called from a safe context.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em o} & The object used to create the link in \mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc()}} or \mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array()}}. \\
\hline
{\em error} & The operation error \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
An Eina\+\_\+\+Value to pass to the next Eina\+\_\+\+Future in the chain (if any). If you need to convert to a different type or generate a new value, use {\ttfamily \mbox{\hyperlink{group__Eina__Value__Value__Group_gab5c6558b1b8be2ad597d71a765cbf5f6}{eina\+\_\+value\+\_\+setup()}}} on {\bfseries another} Eina\+\_\+\+Value and return it. By returning a promise Eina\+\_\+\+Value (\mbox{\hyperlink{group__Eina__Future_ga6151e485fad1e3623c365d11e319d7da}{eina\+\_\+promise\+\_\+as\+\_\+value()}}) the whole chain will wait until the promise is resolved in order to continue execution. Note that the value contents must survive this function scope. In other words {\bfseries not} use stack allocated blobs, arrays, structures or types that keeps references to memory you give. Values will be automatically cleaned up using {\ttfamily \mbox{\hyperlink{group__Eina__Value__Value__Group_ga940660709a2862bafac92f47bb721a68}{eina\+\_\+value\+\_\+flush()}}} once they are unused (no more future or futures returned a new value). 
\end{DoxyReturn}


Referenced by efl\+\_\+future\+\_\+chain\+\_\+array().

\mbox{\Hypertarget{group__Eo_ga84a965881d88c8c87dc358a6b133f8a0}\label{group__Eo_ga84a965881d88c8c87dc358a6b133f8a0}} 
\index{Eo@{Eo}!free@{free}}
\index{free@{free}!Eo@{Eo}}
\subsubsection{\texorpdfstring{free}{free}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::free) (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$o, const Eina\+\_\+\+Future $\ast$dead\+\_\+future)}



Called on {\bfseries all} situations to notify future destruction. 

This is called after {\ttfamily success} or {\ttfamily error}, as well as it\textquotesingle{}s called if none of them are provided. Thus can be used as a \char`\"{}weak ref\char`\"{} mechanism.

\begin{DoxyNote}{Note}
On future creation errors and future cancellation this function is called from the current context with the following errors respectively\+: {\ttfamily E\+I\+N\+V\+AL}, {\ttfamily E\+N\+O\+M\+EM} and {\ttfamily E\+C\+A\+N\+C\+E\+L\+ED}. Otherwise this function is called from a safe context.
\end{DoxyNote}

\begin{DoxyParams}{Parameters}
{\em o} & The object used to create the link in \mbox{\hyperlink{group__Eo_ga932e1176a23d52a260ee52b222a65391}{efl\+\_\+future\+\_\+cb\+\_\+from\+\_\+desc()}} or \mbox{\hyperlink{group__Eo_gaf3d11bc0345a0133fa2635b1306691ee}{efl\+\_\+future\+\_\+chain\+\_\+array()}}. \\
\hline
{\em dead\+\_\+future} & The future that\textquotesingle{}s been freed. \\
\hline
\end{DoxyParams}


Referenced by efl\+\_\+future\+\_\+chain\+\_\+array().

\mbox{\Hypertarget{group__Eo_gad3340ef593d023d9c262f1c7f02afb2b}\label{group__Eo_gad3340ef593d023d9c262f1c7f02afb2b}} 
\index{Eo@{Eo}!success\+\_\+type@{success\+\_\+type}}
\index{success\+\_\+type@{success\+\_\+type}!Eo@{Eo}}
\subsubsection{\texorpdfstring{success\+\_\+type}{success\_type}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__Eina__Value__Group_gaab67ab8bcd0624280c5276044b07e0d2}{Eina\+\_\+\+Value\+\_\+\+Type}}$\ast$ \+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::success\+\_\+type}



If provided, then {\ttfamily success} will only be called if the value type matches the given pointer. 

If provided and no match is found, {\ttfamily error} will be called with {\ttfamily E\+I\+N\+V\+AL}. If there\textquotesingle{}s no {\ttfamily error}, then it will be propagated to the next future in the chain. 

Referenced by efl\+\_\+future\+\_\+chain\+\_\+array().

\mbox{\Hypertarget{group__Eo_ga80f8e59d86857d194aec94c6e237e86f}\label{group__Eo_ga80f8e59d86857d194aec94c6e237e86f}} 
\index{Eo@{Eo}!storage@{storage}}
\index{storage@{storage}!Eo@{Eo}}
\subsubsection{\texorpdfstring{storage}{storage}}
{\footnotesize\ttfamily Eina\+\_\+\+Future$\ast$$\ast$ \+\_\+\+Efl\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Desc\+::storage}



This is used by Eo to cancel pending futures in case an Eo object is deleted. 

It can be {\ttfamily N\+U\+LL}. \mbox{\Hypertarget{group__Eo_ga9638b5c651f276943a8dd73ec30cacc2}\label{group__Eo_ga9638b5c651f276943a8dd73ec30cacc2}} 
\index{Eo@{Eo}!name@{name}}
\index{name@{name}!Eo@{Eo}}
\subsubsection{\texorpdfstring{name}{name}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Stringshare__Group_ga2b7dc19609a55e630a96cc1396e38a53}{Eina\+\_\+\+Stringshare}}$\ast$ \+\_\+\+Efl\+\_\+\+Dbg\+\_\+\+Info\+::name}



The name of the part (stringshare). 



Referenced by E\+F\+L\+\_\+\+D\+B\+G\+\_\+\+I\+N\+F\+O\+\_\+\+L\+I\+S\+T\+\_\+\+A\+P\+P\+E\+N\+D().

\mbox{\Hypertarget{group__Eo_ga1018685c3b73b765441c2229dfd77bc9}\label{group__Eo_ga1018685c3b73b765441c2229dfd77bc9}} 
\index{Eo@{Eo}!value@{value}}
\index{value@{value}!Eo@{Eo}}
\subsubsection{\texorpdfstring{value}{value}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Value__Group_ga7985e8af6e956ae31b381bf829173cc0}{Eina\+\_\+\+Value}} \+\_\+\+Efl\+\_\+\+Dbg\+\_\+\+Info\+::value}



The value. 



Referenced by efl\+\_\+dbg\+\_\+info\+\_\+free(), and E\+F\+L\+\_\+\+D\+B\+G\+\_\+\+I\+N\+F\+O\+\_\+\+L\+I\+S\+T\+\_\+\+A\+P\+P\+E\+N\+D().

\mbox{\Hypertarget{group__Eo_gabd411277350010db34d6b6095ef81f8e}\label{group__Eo_gabd411277350010db34d6b6095ef81f8e}} 
\index{Eo@{Eo}!api\+\_\+func@{api\+\_\+func}}
\index{api\+\_\+func@{api\+\_\+func}!Eo@{Eo}}
\subsubsection{\texorpdfstring{api\+\_\+func}{api\_func}}
{\footnotesize\ttfamily void$\ast$ \+\_\+\+Efl\+\_\+\+Op\+\_\+\+Description\+::api\+\_\+func}



The E\+A\+PI function offering this op. 

(The name of the func on windows) \mbox{\Hypertarget{group__Eo_ga1eb1f06663abc26079e9fa738b85b1eb}\label{group__Eo_ga1eb1f06663abc26079e9fa738b85b1eb}} 
\index{Eo@{Eo}!func@{func}}
\index{func@{func}!Eo@{Eo}}
\subsubsection{\texorpdfstring{func}{func}\hspace{0.1cm}{\footnotesize\ttfamily [3/3]}}
{\footnotesize\ttfamily void$\ast$ \+\_\+\+Efl\+\_\+\+Op\+\_\+\+Description\+::func}



The static function to call for the op. 

\mbox{\Hypertarget{group__Eo_ga8e075e4e272f30e4643cf31e53d0bd21}\label{group__Eo_ga8e075e4e272f30e4643cf31e53d0bd21}} 
\index{Eo@{Eo}!descs@{descs}}
\index{descs@{descs}!Eo@{Eo}}
\subsubsection{\texorpdfstring{descs}{descs}}
{\footnotesize\ttfamily const \mbox{\hyperlink{struct__Efl__Op__Description}{Efl\+\_\+\+Op\+\_\+\+Description}}$\ast$ \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Ops\+::descs}



The op descriptions array of size count. 

\mbox{\Hypertarget{group__Eo_gae778c3b80f79c268cf5f1afa1c272d2a}\label{group__Eo_gae778c3b80f79c268cf5f1afa1c272d2a}} 
\index{Eo@{Eo}!count@{count}}
\index{count@{count}!Eo@{Eo}}
\subsubsection{\texorpdfstring{count}{count}}
{\footnotesize\ttfamily size\+\_\+t \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Ops\+::count}



Number of op descriptions. 



Referenced by efl\+\_\+class\+\_\+functions\+\_\+set().

\mbox{\Hypertarget{group__Eo_gab6f6d0c2b9063cbfeb2d0f0557f1eb79}\label{group__Eo_gab6f6d0c2b9063cbfeb2d0f0557f1eb79}} 
\index{Eo@{Eo}!name@{name}}
\index{name@{name}!Eo@{Eo}}
\subsubsection{\texorpdfstring{name}{name}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const char$\ast$ \+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::name}



The name of the class. 

\mbox{\Hypertarget{group__Eo_gac4eebb8b0fafe60ebebc9171e3e07384}\label{group__Eo_gac4eebb8b0fafe60ebebc9171e3e07384}} 
\index{Eo@{Eo}!type@{type}}
\index{type@{type}!Eo@{Eo}}
\subsubsection{\texorpdfstring{type}{type}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Efl__Class_ga09d772acf2ffed4a891dbbd55d88e120}{Efl\+\_\+\+Class\+\_\+\+Type}} \+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::type}



The type of the class. 

\mbox{\Hypertarget{group__Eo_gae3500b1818e8e9c95b2f7f7b50ef9296}\label{group__Eo_gae3500b1818e8e9c95b2f7f7b50ef9296}} 
\index{Eo@{Eo}!data\+\_\+size@{data\+\_\+size}}
\index{data\+\_\+size@{data\+\_\+size}!Eo@{Eo}}
\subsubsection{\texorpdfstring{data\+\_\+size}{data\_size}}
{\footnotesize\ttfamily size\+\_\+t \+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::data\+\_\+size}



The size of data (private + protected + public) this class needs per object. 

\mbox{\Hypertarget{group__Eo_gae0bbfaf1ac459aca26f24f26615b5200}\label{group__Eo_gae0bbfaf1ac459aca26f24f26615b5200}} 
\index{Eo@{Eo}!class\+\_\+constructor@{class\+\_\+constructor}}
\index{class\+\_\+constructor@{class\+\_\+constructor}!Eo@{Eo}}
\subsubsection{\texorpdfstring{class\+\_\+constructor}{class\_constructor}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::class\+\_\+constructor) (\mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)}



The constructor of the class. 

\mbox{\Hypertarget{group__Eo_gab2ffb56416e3696bc5093e293fbea3f1}\label{group__Eo_gab2ffb56416e3696bc5093e293fbea3f1}} 
\index{Eo@{Eo}!class\+\_\+destructor@{class\+\_\+destructor}}
\index{class\+\_\+destructor@{class\+\_\+destructor}!Eo@{Eo}}
\subsubsection{\texorpdfstring{class\+\_\+destructor}{class\_destructor}}
{\footnotesize\ttfamily void($\ast$ \+\_\+\+Efl\+\_\+\+Class\+\_\+\+Description\+::class\+\_\+destructor) (\mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$klass)}



The destructor of the class. 

\mbox{\Hypertarget{group__Eo_ga9c4e7a85a0c6779ebbc1014919ead614}\label{group__Eo_ga9c4e7a85a0c6779ebbc1014919ead614}} 
\index{Eo@{Eo}!\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock@{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}}
\index{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock@{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}{\_efl\_class\_creation\_lock}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \+\_\+efl\+\_\+class\+\_\+creation\+\_\+lock}



This variable is used for locking purposes in the class\+\_\+get function defined in \mbox{\hyperlink{group__Efl__Class_ga3161daff203ef3a3ab4b12b7de2b5344}{E\+F\+L\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}}. 

This is just to work around the fact that you need to init locks before using them. Don\textquotesingle{}t touch it if you don\textquotesingle{}t know what you are doing. 

Referenced by efl\+\_\+object\+\_\+init().

\mbox{\Hypertarget{group__Eo_ga246e9200fe986fe2fed83d9b4159899e}\label{group__Eo_ga246e9200fe986fe2fed83d9b4159899e}} 
\index{Eo@{Eo}!\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation@{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation}}
\index{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation@{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+efl\+\_\+object\+\_\+init\+\_\+generation}{\_efl\_object\_init\_generation}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily \+\_\+efl\+\_\+object\+\_\+init\+\_\+generation = 1}



This variable stores the current eo init generation. 

In other words how many times you have completed full init/shutdown cycles. This starts at 1 and is incremeted on every call to shutdown that actually shuts down eo. 