\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__Event}{\+\_\+\+Efl\+\_\+\+Event}}
\begin{DoxyCompactList}\small\item\em A parameter passed in event callbacks holding extra event parameters. \end{DoxyCompactList}\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__Object__Op__Call__Data}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data}}
\item 
struct \mbox{\hyperlink{struct__Efl__Object__Call__Cache__Index}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index}}
\item 
struct \mbox{\hyperlink{struct__Efl__Object__Call__Cache__Entry}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry}}
\item 
struct \mbox{\hyperlink{struct__Efl__Object__Call__Cache__Off}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off}}
\item 
struct \mbox{\hyperlink{struct__Efl__Object__Call__Cache}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache}}
\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 
\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_ga4dae4a2ed9a67fd43a90f1751ed1b153}\label{group__Eo_ga4dae4a2ed9a67fd43a90f1751ed1b153}} 
\#define {\bfseries E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+C\+A\+L\+L\+\_\+\+C\+A\+C\+H\+E\+\_\+\+S\+I\+ZE}~1
\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)
\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)
\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)
\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,  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,  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_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 call its constructor(\+If it exits). \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 and call its constructor(\+If it exists). \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eo_ga3725475fc57eb899484e7e3bc7f8abb8}{efl\+\_\+data\+\_\+xref}}(obj,  klass,  ref\+\_\+obj)~\mbox{\hyperlink{group__Eo_gaf559c15cf1c12a48a6ec2fe1ea05db82}{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_gaf559c15cf1c12a48a6ec2fe1ea05db82}{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_ga661576a4c8f7a7415a4efe39a64bf81b}{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_ga661576a4c8f7a7415a4efe39a64bf81b}{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_ga4bc51e6b1f430f3f897c5947f9d743e3}{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_ga4bc51e6b1f430f3f897c5947f9d743e3}{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}
\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_ga7c3e869776149b7c6da75ad0775f7aaa}\label{group__Eo_ga7c3e869776149b7c6da75ad0775f7aaa}} 
typedef \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} {\bfseries Efl\+\_\+\+Class}
\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 
\mbox{\Hypertarget{group__Eo_ga9f7f84e0587bd21a520d8cf6deba1dae}\label{group__Eo_ga9f7f84e0587bd21a520d8cf6deba1dae}} 
typedef \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} \mbox{\hyperlink{group__Eo_ga9f7f84e0587bd21a520d8cf6deba1dae}{Efl\+\_\+\+Future}}
\begin{DoxyCompactList}\small\item\em The type of Efl Future used in asynchronous operation, the read side of a promise. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_gaad321248854e78c1b734b930b1354085}\label{group__Eo_gaad321248854e78c1b734b930b1354085}} 
typedef struct \mbox{\hyperlink{struct__Efl__Event}{\+\_\+\+Efl\+\_\+\+Event}} {\bfseries Efl\+\_\+\+Event}
\item 
typedef void($\ast$ \mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}}) (void $\ast$data, const \mbox{\hyperlink{struct__Efl__Event}{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_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}
\item 
\mbox{\Hypertarget{group__Eo_gade23bb22f97b5e9e868a8bb04268249b}\label{group__Eo_gade23bb22f97b5e9e868a8bb04268249b}} 
typedef struct \mbox{\hyperlink{struct__Efl__Object__Call__Cache__Index}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index}} {\bfseries Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index}
\item 
\mbox{\Hypertarget{group__Eo_ga6c82592e508151d0ff951d8be0c17d2b}\label{group__Eo_ga6c82592e508151d0ff951d8be0c17d2b}} 
typedef struct \mbox{\hyperlink{struct__Efl__Object__Call__Cache__Entry}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry}} {\bfseries Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry}
\item 
\mbox{\Hypertarget{group__Eo_ga8e8acacf1cfb0ca0e902447b760cf1bb}\label{group__Eo_ga8e8acacf1cfb0ca0e902447b760cf1bb}} 
typedef struct \mbox{\hyperlink{struct__Efl__Object__Call__Cache__Off}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off}} {\bfseries Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off}
\item 
\mbox{\Hypertarget{group__Eo_gaca899035c6f0b0137d0f052376a7e5b9}\label{group__Eo_gaca899035c6f0b0137d0f052376a7e5b9}} 
typedef struct \mbox{\hyperlink{struct__Efl__Object__Call__Cache}{\+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache}} {\bfseries Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache}
\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, just for compat. \end{DoxyCompactList}\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 \mbox{\hyperlink{struct__Efl__Event__Description}{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 \mbox{\hyperlink{struct__Efl__Event__Description}{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 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_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 \mbox{\hyperlink{struct__Efl__Event__Description}{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 \mbox{\hyperlink{struct__Efl__Event__Description}{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_ga23f7217110a793b850341d6204570dd1}{efl\+\_\+future\+\_\+link}} (\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj, \mbox{\hyperlink{group__Eo_ga9f7f84e0587bd21a520d8cf6deba1dae}{Efl\+\_\+\+Future}} $\ast$link)
\begin{DoxyCompactList}\small\item\em Track a future life cycle and cancel it if the object dies. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga58cdfb9f677df4c4eced4fe574b36755}{efl\+\_\+object\+\_\+init}} (void)
\begin{DoxyCompactList}\small\item\em Init the eo subsystem. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_gafa9d2be390b8d1840cd5235389491fab}{efl\+\_\+object\+\_\+shutdown}} (void)
\begin{DoxyCompactList}\small\item\em Shutdown the eo subsystem. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} \mbox{\hyperlink{group__Eo_gaf6c585e2ad926476b11dfcc8e4f84dfd}{efl\+\_\+domain\+\_\+get}} (void)
\begin{DoxyCompactList}\small\item\em Get the native domain for the current thread. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga57e06724eea9ff50df28f6d44d22eff5}{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__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} \mbox{\hyperlink{group__Eo_gaf7a1464f3ff18943ffe8040b3d16512d}{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__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga81b634544e1852a7bceff9fd90e6c90e}{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__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga81ed816d53632ee54fda137e322c57b6}{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 
void \mbox{\hyperlink{group__Eo_ga492db0a2cc1080c230a22d23e118dbff}{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__Eo_ga14259b75d4c7701b5d5edcee323a10fc}{Efl\+\_\+\+Domain\+\_\+\+Data}} $\ast$ \mbox{\hyperlink{group__Eo_ga375e185d1c597d34956d070c7777cf5d}{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__Eo_gacd9b94e9fd21c08bddee0ab0096b2f06}{Efl\+\_\+\+Id\+\_\+\+Domain}} \mbox{\hyperlink{group__Eo_gab17c8fded746fb54686d5e15b8af25c2}{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__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_gaf8e21cc0f4b20cb640fd516683e69050}{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__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga6402c30667e449fc2f539a4ed8a071f6}{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_ga39b8e320d3411f91dbbeec93358d1aff}\label{group__Eo_ga39b8e320d3411f91dbbeec93358d1aff}} 
\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_ga0e533d57a9ac5da15e742222f11aee64}\label{group__Eo_ga0e533d57a9ac5da15e742222f11aee64}} 
\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_gabf8c0b0caf6899f01b31001a81133f09}\label{group__Eo_gabf8c0b0caf6899f01b31001a81133f09}} 
\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{struct__Efl__Object__Call__Cache}{Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache}} $\ast$callcache, const char $\ast$file, int line)
\item 
\mbox{\Hypertarget{group__Eo_ga2d85c1be009a3c5b29c097e1456af12c}\label{group__Eo_ga2d85c1be009a3c5b29c097e1456af12c}} 
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_gaa27a4030d0b38fd809929be42f03d402}\label{group__Eo_gaa27a4030d0b38fd809929be42f03d402}} 
\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__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ \mbox{\hyperlink{group__Eo_ga20a00c93100225dd06ab8baefb6277ed}{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__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ \mbox{\hyperlink{group__Eo_ga6e57fdd6353c5fab7851f17d4269fe49}{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 
const \mbox{\hyperlink{group__Eo_ga4f7483d7c5a34a3b81d8f8467fdd566a}{Efl\+\_\+\+Class}} $\ast$ \mbox{\hyperlink{group__Eo_ga6f3c71a5e70fded07fd07becc04a9e47}{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_ga09b07b0e0f2e53e652f9dcf0df2c7866}\label{group__Eo_ga09b07b0e0f2e53e652f9dcf0df2c7866}} 
\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ {\bfseries \+\_\+efl\+\_\+added\+\_\+get} (void)
\item 
\mbox{\Hypertarget{group__Eo_gae0dcf0b33862d1f8a45c0b7670677678}\label{group__Eo_gae0dcf0b33862d1f8a45c0b7670677678}} 
\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 
void $\ast$ \mbox{\hyperlink{group__Eo_gaed882acfd957eeb46972e2d1a764bd63}{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 
void $\ast$ \mbox{\hyperlink{group__Eo_ga2007a1a199d5b03eb3bcf22bb07b2e9a}{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 
void $\ast$ \mbox{\hyperlink{group__Eo_gaf559c15cf1c12a48a6ec2fe1ea05db82}{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 
void \mbox{\hyperlink{group__Eo_ga661576a4c8f7a7415a4efe39a64bf81b}{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__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ \mbox{\hyperlink{group__Eo_gaffddb0c86a9ec682a6f65fc6cb4c231d}{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 
void \mbox{\hyperlink{group__Eo_gad40b0c8447d0b5e094ba3f26df54e4c9}{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 
int \mbox{\hyperlink{group__Eo_ga9f54fea69c60329576e4e34d1917ab5b}{efl\+\_\+ref\+\_\+get}} (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 
void \mbox{\hyperlink{group__Eo_gafb49b2e3c90d557beccc35b1ff4fba7e}{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__Eo_gab02fa807a9c63bbc357b5abf0e52893a}{Efl\+\_\+\+Del\+\_\+\+Intercept}} \mbox{\hyperlink{group__Eo_gaf5495892b05e6c23a740d3ca894659f2}{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 
void \mbox{\hyperlink{group__Eo_ga99d3bc602f419139b06c34d25517af76}{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__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$ \mbox{\hyperlink{group__Eo_ga4bc51e6b1f430f3f897c5947f9d743e3}{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 
void \mbox{\hyperlink{group__Eo_gafa153371c7985d591b0796ac6d891c3e}{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 
void \mbox{\hyperlink{group__Eo_ga5348433e13206d274a99f34aa24aa581}{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__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga771244a803c49b9de3a478f5f447c15a}{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__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Eo_ga918e907f3d53acedd66da526cfc559ea}{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}\item 
\mbox{\Hypertarget{group__Eo_gae98ca1e94e7550658816537a9e15a534}\label{group__Eo_gae98ca1e94e7550658816537a9e15a534}} 
int {\bfseries \+\_\+\+\_\+\+\_\+efl\+\_\+ref2\+\_\+get} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj\+\_\+id)
\item 
\mbox{\Hypertarget{group__Eo_gab9ebe67212076428f3f3897da557a868}\label{group__Eo_gab9ebe67212076428f3f3897da557a868}} 
void {\bfseries \+\_\+\+\_\+\+\_\+efl\+\_\+ref2\+\_\+reset} (const \mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$obj\+\_\+id)
\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 
Efl\+\_\+\+Object $\ast$ \mbox{\hyperlink{group__Eo_gaff488111192581384be69fc08532ce5a}{\+\_\+\+Efl\+\_\+\+Event\+::object}}
\begin{DoxyCompactList}\small\item\em The object the event was called on. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{struct__Efl__Event__Description}{Efl\+\_\+\+Event\+\_\+\+Description}} $\ast$ \mbox{\hyperlink{group__Eo_ga603cfeeb60813b1e4fe3c03f2746fd62}{\+\_\+\+Efl\+\_\+\+Event\+::desc}}
\begin{DoxyCompactList}\small\item\em The event description. \end{DoxyCompactList}\item 
void $\ast$ \mbox{\hyperlink{group__Eo_ga677018d42b41fa1336b7f17b66ebb719}{\+\_\+\+Efl\+\_\+\+Event\+::info}}
\begin{DoxyCompactList}\small\item\em Extra event information passed by the event caller. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{struct__Efl__Event__Description}{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 
\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{\Hypertarget{group__Eo_ga3ab2bddc8ea1531269b2b5ffda760c09}\label{group__Eo_ga3ab2bddc8ea1531269b2b5ffda760c09}} 
const void $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index\+::klass}
\item 
\mbox{\Hypertarget{group__Eo_gab6325f1b58e644580d6e75b19471d09f}\label{group__Eo_gab6325f1b58e644580d6e75b19471d09f}} 
const void $\ast$ {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry\+::func}
\item 
\mbox{\Hypertarget{group__Eo_ga622747f9a1f4bb71452e83be1c9510c5}\label{group__Eo_ga622747f9a1f4bb71452e83be1c9510c5}} 
int {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off\+::off}
\item 
\mbox{\Hypertarget{group__Eo_gaa8dc8b1e550bc97b73d4f1b48ac0515c}\label{group__Eo_gaa8dc8b1e550bc97b73d4f1b48ac0515c}} 
\mbox{\hyperlink{struct__Efl__Object__Call__Cache__Index}{Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index}} {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+::index} \mbox{[}E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+C\+A\+L\+L\+\_\+\+C\+A\+C\+H\+E\+\_\+\+S\+I\+ZE\mbox{]}
\item 
\mbox{\Hypertarget{group__Eo_gab5949320e03fc161988e02000f476c92}\label{group__Eo_gab5949320e03fc161988e02000f476c92}} 
\mbox{\hyperlink{struct__Efl__Object__Call__Cache__Entry}{Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry}} {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+::entry} \mbox{[}E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+C\+A\+L\+L\+\_\+\+C\+A\+C\+H\+E\+\_\+\+S\+I\+ZE\mbox{]}
\item 
\mbox{\Hypertarget{group__Eo_ga099a229a06e4b5d2a5bad88cca0ce3db}\label{group__Eo_ga099a229a06e4b5d2a5bad88cca0ce3db}} 
\mbox{\hyperlink{struct__Efl__Object__Call__Cache__Off}{Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off}} {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+::off} \mbox{[}E\+F\+L\+\_\+\+O\+B\+J\+E\+C\+T\+\_\+\+C\+A\+L\+L\+\_\+\+C\+A\+C\+H\+E\+\_\+\+S\+I\+ZE\mbox{]}
\item 
\mbox{\Hypertarget{group__Eo_gae8e6c035b02a1646a99b7940db731d78}\label{group__Eo_gae8e6c035b02a1646a99b7940db731d78}} 
\mbox{\hyperlink{group__Eo_ga3f0955158c555bab274bfd1b5a5b8a05}{Efl\+\_\+\+Object\+\_\+\+Op}} {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+::op}
\item 
\mbox{\Hypertarget{group__Eo_ga3ad6a43334331ea448c54cef31184c38}\label{group__Eo_ga3ad6a43334331ea448c54cef31184c38}} 
unsigned int {\bfseries \+\_\+\+Efl\+\_\+\+Object\+\_\+\+Call\+\_\+\+Cache\+::generation}
\item 
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 
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_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} EFL\_FUNC\_TLS \mbox{\hyperlink{struct__Efl__Object__Call__Cache}{Efl\_Object\_Call\_Cache}} \_\_\_cache; \textcolor{comment}{/* static 0 by default */} \(\backslash\)
   Efl\_Object\_Op\_Call\_Data \_\_\_call; \(\backslash\)
   \_Eo\_##Name##\_func \_func\_;                                            \(\backslash\)
   if (\mbox{\hyperlink{group__Eina__Types__Group_ga70675a75a5fb3e9a51d5af985a1fd3aa}{EINA\_UNLIKELY}}((\_\_\_cache.op == \mbox{\hyperlink{group__Eo_ga324b815f591bae754277029f668fd409}{EFL\_NOOP}}) ||                       \(\backslash\)
                     (\_\_\_cache.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: \(\backslash\)
   if (!\_efl\_object\_call\_resolve((\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} *) Obj, #Name, &\_\_\_call, &\_\_\_cache, \(\backslash\)
                                 \_\_FILE\_\_, \_\_LINE\_\_)) \textcolor{keywordflow}{return} DefRet; \(\backslash\)
   \_func\_ = (\_Eo\_##Name##\_func) \_\_\_call.func;
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga2978ba8812cfbf005a03fc08da7ed70a}\label{group__Eo_ga2978ba8812cfbf005a03fc08da7ed70a}} 
\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 }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\_\_##Name##\_op\_create: \(\backslash\)
   if (\mbox{\hyperlink{group__Eina__Types__Group_ga70675a75a5fb3e9a51d5af985a1fd3aa}{EINA\_UNLIKELY}}(\_\_\_cache.op != \mbox{\hyperlink{group__Eo_ga324b815f591bae754277029f668fd409}{EFL\_NOOP}})) memset(&\_\_\_cache, 0, \textcolor{keyword}{sizeof}(\_\_\_cache));
       \(\backslash\)
   \_\_\_cache.op = \_efl\_object\_op\_api\_id\_get(EFL\_FUNC\_COMMON\_OP\_FUNC(Name), Obj, #Name, \_\_FILE\_\_, \_\_LINE\_\_); 
      \(\backslash\)
   if (\_\_\_cache.op == \mbox{\hyperlink{group__Eo_ga324b815f591bae754277029f668fd409}{EFL\_NOOP}}) \textcolor{keywordflow}{return} DefRet; \(\backslash\)
   \_\_\_cache.generation = \mbox{\hyperlink{group__Eo_gaae670ec969c91058fba6351d20d53406}{\_efl\_object\_init\_generation}}; \(\backslash\)
   goto \_\_##Name##\_op\_create\_done;
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_gacdc9826bd07fd94b0ef846eaa28de128}\label{group__Eo_gacdc9826bd07fd94b0ef846eaa28de128}} 
\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 }\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); \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_gae68850051ec2c764eed15fdcc69a7bb2}\label{group__Eo_gae68850051ec2c764eed15fdcc69a7bb2}} 
\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 }\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, ); \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga80a05f0364e55a71defea7058bccbe22}\label{group__Eo_ga80a05f0364e55a71defea7058bccbe22}} 
\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[{}]{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); \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga10ee25729ec49c7244e17504dab3917b}\label{group__Eo_ga10ee25729ec49c7244e17504dab3917b}} 
\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[{}]{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, ); \(\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 call its constructor(\+If it exits). 

The object returned by this function will always have 1 ref (reference count) irrespective of whether the parent is N\+U\+LL or not. If the object is created using this function, then it would automatically gets deleted when the parent object is deleted. There is no need to call efl\+\_\+unref on the child. This is convenient in C.

If you want a more \char`\"{}consistent\char`\"{} behaviour, take a look at \mbox{\hyperlink{group__Eo_ga27973a0cd41b6e13ef18aff46ed91bf8}{efl\+\_\+add\+\_\+ref}}.


\begin{DoxyParams}{Parameters}
{\em klass} & the class of the object to create. \\
\hline
{\em parent} & the parent to set to the object. \\
\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(), ecore\+\_\+exe\+\_\+pipe\+\_\+run(), ecore\+\_\+init(), ecore\+\_\+timer\+\_\+add(), ecore\+\_\+timer\+\_\+loop\+\_\+add(), edje\+\_\+3d\+\_\+object\+\_\+add(), edje\+\_\+edit\+\_\+object\+\_\+add(), eio\+\_\+init(), elm\+\_\+web\+\_\+add(), elm\+\_\+win\+\_\+add(), elm\+\_\+win\+\_\+fake\+\_\+add(), elm\+\_\+win\+\_\+util\+\_\+dialog\+\_\+add(), elm\+\_\+win\+\_\+util\+\_\+standard\+\_\+add(), emotion\+\_\+object\+\_\+add(), evas\+\_\+device\+\_\+add\+\_\+full(), evas\+\_\+new(), evas\+\_\+object\+\_\+box\+\_\+add(), evas\+\_\+object\+\_\+grid\+\_\+add(), evas\+\_\+object\+\_\+polygon\+\_\+add(), evas\+\_\+object\+\_\+rectangle\+\_\+add(), evas\+\_\+object\+\_\+smart\+\_\+add(), evas\+\_\+object\+\_\+table\+\_\+add(), evas\+\_\+object\+\_\+text\+\_\+add(), evas\+\_\+object\+\_\+textblock\+\_\+add(), and evas\+\_\+object\+\_\+textgrid\+\_\+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 and call its constructor(\+If it exists). 

The object returned by this function has 1 ref for itself, 1 ref from the parent (if exists) and possible other refs if were added during construction. If a child object is created using this, then it won\textquotesingle{}t get deleted when the parent object is deleted until you manually remove the ref by calling \mbox{\hyperlink{group__Eo_gad40b0c8447d0b5e094ba3f26df54e4c9}{efl\+\_\+unref()}}.


\begin{DoxyParams}{Parameters}
{\em klass} & the class of the object to create. \\
\hline
{\em parent} & the parent to set to the object. \\
\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_gaf559c15cf1c12a48a6ec2fe1ea05db82}{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_gaf559c15cf1c12a48a6ec2fe1ea05db82}{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_gaf559c15cf1c12a48a6ec2fe1ea05db82}{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_gaf559c15cf1c12a48a6ec2fe1ea05db82}{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_ga661576a4c8f7a7415a4efe39a64bf81b}{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_ga661576a4c8f7a7415a4efe39a64bf81b}{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_ga661576a4c8f7a7415a4efe39a64bf81b}{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_ga4bc51e6b1f430f3f897c5947f9d743e3}{efl\+\_\+xref\+\_\+internal}}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, ref\+\_\+obj)}



Convenience macro around \mbox{\hyperlink{group__Eo_ga4bc51e6b1f430f3f897c5947f9d743e3}{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 destruction \\
\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 \mbox{\hyperlink{struct__Efl__Event}{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 that all threads can see but has 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 \mbox{\hyperlink{struct__Efl__Event__Description}{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\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add(), and 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 \mbox{\hyperlink{struct__Efl__Event__Description}{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 to it for an event. 

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


\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\+\_\+store\+\_\+free(), elm\+\_\+store\+\_\+target\+\_\+genlist\+\_\+set(), evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+del(), evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+del\+\_\+full(), 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 \mbox{\hyperlink{struct__Efl__Event__Description}{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 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 \mbox{\hyperlink{struct__Efl__Event__Description}{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\+\_\+copy(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+cut(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+end(), elm\+\_\+code\+\_\+widget\+\_\+selection\+\_\+start(), evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+call(), and evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+set().

\mbox{\Hypertarget{group__Eo_ga23f7217110a793b850341d6204570dd1}\label{group__Eo_ga23f7217110a793b850341d6204570dd1}} 
\index{Eo@{Eo}!efl\+\_\+future\+\_\+link@{efl\+\_\+future\+\_\+link}}
\index{efl\+\_\+future\+\_\+link@{efl\+\_\+future\+\_\+link}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+future\+\_\+link()}{efl\_future\_link()}}
{\footnotesize\ttfamily E\+O\+A\+PI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} efl\+\_\+future\+\_\+link (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}} $\ast$}]{obj,  }\item[{\mbox{\hyperlink{group__Eo_ga9f7f84e0587bd21a520d8cf6deba1dae}{Efl\+\_\+\+Future}} $\ast$}]{link }\end{DoxyParamCaption})}



Track a future life cycle and cancel it if the object dies. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em link} & The future to link with the object\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily true} if it succeeded on setting up the tracking. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eo_ga58cdfb9f677df4c4eced4fe574b36755}\label{group__Eo_ga58cdfb9f677df4c4eced4fe574b36755}} 
\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__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\+\_\+shutfown() 
\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(), ector\+\_\+init(), and evas\+\_\+init().

\mbox{\Hypertarget{group__Eo_gafa9d2be390b8d1840cd5235389491fab}\label{group__Eo_gafa9d2be390b8d1840cd5235389491fab}} 
\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__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_ga58cdfb9f677df4c4eced4fe574b36755}{efl\+\_\+object\+\_\+init()}} 
\end{DoxySeeAlso}


References eina\+\_\+log\+\_\+timing(), and E\+I\+N\+A\+\_\+\+T\+R\+UE.

\mbox{\Hypertarget{group__Eo_gaf6c585e2ad926476b11dfcc8e4f84dfd}\label{group__Eo_gaf6c585e2ad926476b11dfcc8e4f84dfd}} 
\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__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_ga57e06724eea9ff50df28f6d44d22eff5}{efl\+\_\+domain\+\_\+switch()}} and this can only be called before any objects are created/allocated on the thread where it is called. Calling it after this point will result in undefined behavior, so be sure to call this immediaetly after a thread begins to execute, before anything else. You must not change the domain of the main thread.

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

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

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

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

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

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

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

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

\mbox{\hyperlink{group__Eo_ga6402c30667e449fc2f539a4ed8a071f6}{efl\+\_\+compatible()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga57e06724eea9ff50df28f6d44d22eff5}\label{group__Eo_ga57e06724eea9ff50df28f6d44d22eff5}} 
\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__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_ga81b634544e1852a7bceff9fd90e6c90e}{efl\+\_\+domain\+\_\+current\+\_\+set()}}, \mbox{\hyperlink{group__Eo_ga81ed816d53632ee54fda137e322c57b6}{efl\+\_\+domain\+\_\+current\+\_\+push()}} or \mbox{\hyperlink{group__Eo_ga492db0a2cc1080c230a22d23e118dbff}{efl\+\_\+domain\+\_\+current\+\_\+pop()}}, \mbox{\hyperlink{group__Eo_gab17c8fded746fb54686d5e15b8af25c2}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}} and \mbox{\hyperlink{group__Eo_gaf8e21cc0f4b20cb640fd516683e69050}{efl\+\_\+domain\+\_\+data\+\_\+return()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gaf6c585e2ad926476b11dfcc8e4f84dfd}{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_gaf7a1464f3ff18943ffe8040b3d16512d}\label{group__Eo_gaf7a1464f3ff18943ffe8040b3d16512d}} 
\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__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 via \mbox{\hyperlink{group__Eo_ga81ed816d53632ee54fda137e322c57b6}{efl\+\_\+domain\+\_\+current\+\_\+push()}} and \mbox{\hyperlink{group__Eo_ga492db0a2cc1080c230a22d23e118dbff}{efl\+\_\+domain\+\_\+current\+\_\+pop()}}. This only gets the domain for the current thread.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gaf6c585e2ad926476b11dfcc8e4f84dfd}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga81b634544e1852a7bceff9fd90e6c90e}\label{group__Eo_ga81b634544e1852a7bceff9fd90e6c90e}} 
\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__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 via \mbox{\hyperlink{group__Eo_ga81ed816d53632ee54fda137e322c57b6}{efl\+\_\+domain\+\_\+current\+\_\+push()}} and \mbox{\hyperlink{group__Eo_ga492db0a2cc1080c230a22d23e118dbff}{efl\+\_\+domain\+\_\+current\+\_\+pop()}}. The current domain is the one ont he 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_gaf6c585e2ad926476b11dfcc8e4f84dfd}{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_ga81ed816d53632ee54fda137e322c57b6}\label{group__Eo_ga81ed816d53632ee54fda137e322c57b6}} 
\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__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_ga492db0a2cc1080c230a22d23e118dbff}{efl\+\_\+domain\+\_\+current\+\_\+pop()}}. If the stack is full this may fail and return E\+I\+N\+A\+\_\+\+F\+A\+L\+SE in that case. This applies only to the calling thread.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gaf6c585e2ad926476b11dfcc8e4f84dfd}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga492db0a2cc1080c230a22d23e118dbff}\label{group__Eo_ga492db0a2cc1080c230a22d23e118dbff}} 
\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 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_ga81ed816d53632ee54fda137e322c57b6}{efl\+\_\+domain\+\_\+current\+\_\+push()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gaf6c585e2ad926476b11dfcc8e4f84dfd}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga375e185d1c597d34956d070c7777cf5d}\label{group__Eo_ga375e185d1c597d34956d070c7777cf5d}} 
\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__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_gab17c8fded746fb54686d5e15b8af25c2}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}}. Once you use \mbox{\hyperlink{group__Eo_gab17c8fded746fb54686d5e15b8af25c2}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}} the thread that called \mbox{\hyperlink{group__Eo_ga375e185d1c597d34956d070c7777cf5d}{efl\+\_\+domain\+\_\+data\+\_\+get()}} should suspend and not execute anything related to eo or efl objects until the thread that adopted the data called \mbox{\hyperlink{group__Eo_gaf8e21cc0f4b20cb640fd516683e69050}{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_gaf6c585e2ad926476b11dfcc8e4f84dfd}{efl\+\_\+domain\+\_\+get()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gab17c8fded746fb54686d5e15b8af25c2}\label{group__Eo_gab17c8fded746fb54686d5e15b8af25c2}} 
\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__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 so these might clash (be 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_gaf8e21cc0f4b20cb640fd516683e69050}{efl\+\_\+domain\+\_\+data\+\_\+return()}} when done.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gaf6c585e2ad926476b11dfcc8e4f84dfd}{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_gaf8e21cc0f4b20cb640fd516683e69050}\label{group__Eo_gaf8e21cc0f4b20cb640fd516683e69050}} 
\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__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 that thread after this to continue execution. 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_gab17c8fded746fb54686d5e15b8af25c2}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}}. You cannot return your own native local domain, only the one that was adopted by \mbox{\hyperlink{group__Eo_gab17c8fded746fb54686d5e15b8af25c2}{efl\+\_\+domain\+\_\+data\+\_\+adopt()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gaf6c585e2ad926476b11dfcc8e4f84dfd}{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_ga6402c30667e449fc2f539a4ed8a071f6}\label{group__Eo_ga6402c30667e449fc2f539a4ed8a071f6}} 
\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__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 alternat 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 and could be parent or children of eachother, could reference eachother etc.. There is only a need to call this if you got objects from multiple domains (an adopted domain with \mbox{\hyperlink{group__Eo_gab17c8fded746fb54686d5e15b8af25c2}{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_gaf6c585e2ad926476b11dfcc8e4f84dfd}{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_ga20a00c93100225dd06ab8baefb6277ed}\label{group__Eo_ga20a00c93100225dd06ab8baefb6277ed}} 
\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__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 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_ga20a00c93100225dd06ab8baefb6277ed}{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_ga20a00c93100225dd06ab8baefb6277ed}{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_ga6e57fdd6353c5fab7851f17d4269fe49}{efl\+\_\+cast}} 
\end{DoxySeeAlso}


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

\mbox{\Hypertarget{group__Eo_ga6e57fdd6353c5fab7851f17d4269fe49}\label{group__Eo_ga6e57fdd6353c5fab7851f17d4269fe49}} 
\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__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_ga6e57fdd6353c5fab7851f17d4269fe49}{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_ga6e57fdd6353c5fab7851f17d4269fe49}{efl\+\_\+cast}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+20 
\end{DoxySince}


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

\mbox{\Hypertarget{group__Eo_ga6f3c71a5e70fded07fd07becc04a9e47}\label{group__Eo_ga6f3c71a5e70fded07fd07becc04a9e47}} 
\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 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_ga4383338f14f80e335d2f503303b3dc28}{efl\+\_\+class\+\_\+name\+\_\+get()}} 
\end{DoxySeeAlso}


References E\+F\+L\+\_\+\+C\+L\+A\+S\+S\+\_\+\+C\+L\+A\+SS.



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_gaed882acfd957eeb46972e2d1a764bd63}\label{group__Eo_gaed882acfd957eeb46972e2d1a764bd63}} 
\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 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_ga2007a1a199d5b03eb3bcf22bb07b2e9a}{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\+\_\+smart\+\_\+member\+\_\+del(), evas\+\_\+object\+\_\+textblock\+\_\+line\+\_\+number\+\_\+geometry\+\_\+get(), evas\+\_\+object\+\_\+textblock\+\_\+replace\+\_\+char\+\_\+get(), evas\+\_\+object\+\_\+textblock\+\_\+replace\+\_\+char\+\_\+set(), evas\+\_\+object\+\_\+textblock\+\_\+style\+\_\+get(), evas\+\_\+object\+\_\+textblock\+\_\+style\+\_\+set(), evas\+\_\+object\+\_\+textblock\+\_\+style\+\_\+user\+\_\+peek(), evas\+\_\+object\+\_\+textblock\+\_\+style\+\_\+user\+\_\+pop(), evas\+\_\+object\+\_\+textblock\+\_\+style\+\_\+user\+\_\+push(), evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+get(), evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+prepend(), evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+set(), evas\+\_\+object\+\_\+textblock\+\_\+valign\+\_\+get(), evas\+\_\+object\+\_\+textblock\+\_\+valign\+\_\+set(), 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\+\_\+delete(), evas\+\_\+textblock\+\_\+cursor\+\_\+char\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+char\+\_\+next(), 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\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+line\+\_\+char\+\_\+first(), evas\+\_\+textblock\+\_\+cursor\+\_\+line\+\_\+char\+\_\+last(), evas\+\_\+textblock\+\_\+cursor\+\_\+line\+\_\+coord\+\_\+set(), evas\+\_\+textblock\+\_\+cursor\+\_\+line\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+line\+\_\+set(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+char\+\_\+first(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+char\+\_\+last(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+first(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+last(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+text\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+text\+\_\+length\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+pen\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+pos\+\_\+set(), evas\+\_\+textblock\+\_\+cursor\+\_\+range\+\_\+formats\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+range\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+word\+\_\+end(), evas\+\_\+textblock\+\_\+cursor\+\_\+word\+\_\+start(), evas\+\_\+textblock\+\_\+node\+\_\+format\+\_\+first\+\_\+get(), evas\+\_\+textblock\+\_\+node\+\_\+format\+\_\+last\+\_\+get(), evas\+\_\+textblock\+\_\+node\+\_\+format\+\_\+list\+\_\+get(), evas\+\_\+textblock\+\_\+node\+\_\+format\+\_\+remove\+\_\+pair(), and evas\+\_\+textblock\+\_\+style\+\_\+set().

\mbox{\Hypertarget{group__Eo_ga2007a1a199d5b03eb3bcf22bb07b2e9a}\label{group__Eo_ga2007a1a199d5b03eb3bcf22bb07b2e9a}} 
\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 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_gaed882acfd957eeb46972e2d1a764bd63}{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_gaed882acfd957eeb46972e2d1a764bd63}{efl\+\_\+data\+\_\+scope\+\_\+get()}}
\end{DoxySeeAlso}
\begin{DoxySince}{Since}
1.\+20 
\end{DoxySince}


References E\+RR.



Referenced by 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\+\_\+fake\+\_\+canvas\+\_\+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(), evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+del(), evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+del\+\_\+full(), and evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add().

\mbox{\Hypertarget{group__Eo_gaf559c15cf1c12a48a6ec2fe1ea05db82}\label{group__Eo_gaf559c15cf1c12a48a6ec2fe1ea05db82}} 
\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 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_ga661576a4c8f7a7415a4efe39a64bf81b}{efl\+\_\+data\+\_\+xunref\+\_\+internal()}} 
\end{DoxySeeAlso}


References E\+RR.

\mbox{\Hypertarget{group__Eo_ga661576a4c8f7a7415a4efe39a64bf81b}\label{group__Eo_ga661576a4c8f7a7415a4efe39a64bf81b}} 
\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 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_gaf559c15cf1c12a48a6ec2fe1ea05db82}{efl\+\_\+data\+\_\+xref\+\_\+internal()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gaffddb0c86a9ec682a6f65fc6cb4c231d}\label{group__Eo_gaffddb0c86a9ec682a6f65fc6cb4c231d}} 
\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__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. That is why there are efl\+\_\+xref and efl\+\_\+xunref that will make debugging easier in such a case. Therefor, these functions should only be used in small scopes, i.\+e at the start of some section in which the object may get freed, or if you know what you are doing.

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

\mbox{\hyperlink{group__Eo_ga9f54fea69c60329576e4e34d1917ab5b}{efl\+\_\+ref\+\_\+get()}} 
\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(), and evas\+\_\+object\+\_\+ref().

\mbox{\Hypertarget{group__Eo_gad40b0c8447d0b5e094ba3f26df54e4c9}\label{group__Eo_gad40b0c8447d0b5e094ba3f26df54e4c9}} 
\index{Eo@{Eo}!efl\+\_\+unref@{efl\+\_\+unref}}
\index{efl\+\_\+unref@{efl\+\_\+unref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+unref()}{efl\_unref()}}
{\footnotesize\ttfamily 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_gaffddb0c86a9ec682a6f65fc6cb4c231d}{efl\+\_\+ref()}} 

\mbox{\hyperlink{group__Eo_ga9f54fea69c60329576e4e34d1917ab5b}{efl\+\_\+ref\+\_\+get()}} 
\end{DoxySeeAlso}


References E\+I\+N\+A\+\_\+\+L\+O\+G\+\_\+\+L\+E\+V\+E\+L\+\_\+\+E\+RR, E\+I\+N\+A\+\_\+\+U\+N\+L\+I\+K\+E\+LY, and E\+RR.



Referenced by ecore\+\_\+timer\+\_\+del(), efl\+\_\+xunref(), evas\+\_\+device\+\_\+pop(), evas\+\_\+free(), and evas\+\_\+object\+\_\+unref().

\mbox{\Hypertarget{group__Eo_ga9f54fea69c60329576e4e34d1917ab5b}\label{group__Eo_ga9f54fea69c60329576e4e34d1917ab5b}} 
\index{Eo@{Eo}!efl\+\_\+ref\+\_\+get@{efl\+\_\+ref\+\_\+get}}
\index{efl\+\_\+ref\+\_\+get@{efl\+\_\+ref\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+ref\+\_\+get()}{efl\_ref\_get()}}
{\footnotesize\ttfamily int efl\+\_\+ref\+\_\+get (\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_gaffddb0c86a9ec682a6f65fc6cb4c231d}{efl\+\_\+ref()}} 

\mbox{\hyperlink{group__Eo_gad40b0c8447d0b5e094ba3f26df54e4c9}{efl\+\_\+unref()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gafb49b2e3c90d557beccc35b1ff4fba7e}\label{group__Eo_gafb49b2e3c90d557beccc35b1ff4fba7e}} 
\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 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. It is the job of this interceptor function to handle 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_gaf5495892b05e6c23a740d3ca894659f2}{efl\+\_\+del\+\_\+intercept\+\_\+get()}} 

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

efl\+\_\+del() 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gaf5495892b05e6c23a740d3ca894659f2}\label{group__Eo_gaf5495892b05e6c23a740d3ca894659f2}} 
\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__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_gafb49b2e3c90d557beccc35b1ff4fba7e}{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, so it is important to be able to get the interceptor function to know if this has happend and if you want to override this interceptor, be sure to call it after your own interceptor function has finished. It would generally be a bad idea though to override these functions.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gafb49b2e3c90d557beccc35b1ff4fba7e}{efl\+\_\+del\+\_\+intercept\+\_\+set()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga99d3bc602f419139b06c34d25517af76}\label{group__Eo_ga99d3bc602f419139b06c34d25517af76}} 
\index{Eo@{Eo}!efl\+\_\+reuse@{efl\+\_\+reuse}}
\index{efl\+\_\+reuse@{efl\+\_\+reuse}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+reuse()}{efl\_reuse()}}
{\footnotesize\ttfamily 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_gafb49b2e3c90d557beccc35b1ff4fba7e}{efl\+\_\+del\+\_\+intercept\+\_\+set()}} 
\end{DoxySeeAlso}


References efl\+\_\+object\+\_\+override(), and E\+I\+N\+A\+\_\+\+F\+A\+L\+SE.

\mbox{\Hypertarget{group__Eo_ga4bc51e6b1f430f3f897c5947f9d743e3}\label{group__Eo_ga4bc51e6b1f430f3f897c5947f9d743e3}} 
\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__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}
People should not use this function, use \mbox{\hyperlink{group__Eo_ga68644534eb49539ab5c0d8e937482385}{efl\+\_\+xref}} instead. A compile flag my make it and eobj\+\_\+xunref() behave the same as eobj\+\_\+ref() and eobj\+\_\+unref() respectively. So this should be used wherever possible.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_gafa153371c7985d591b0796ac6d891c3e}{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_gafa153371c7985d591b0796ac6d891c3e}\label{group__Eo_gafa153371c7985d591b0796ac6d891c3e}} 
\index{Eo@{Eo}!efl\+\_\+xunref@{efl\+\_\+xunref}}
\index{efl\+\_\+xunref@{efl\+\_\+xunref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{efl\+\_\+xunref()}{efl\_xunref()}}
{\footnotesize\ttfamily 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. I.\+e don\textquotesingle{}t rely on it. If such enforces are compiled out, this function behaves the same as \mbox{\hyperlink{group__Eo_gad40b0c8447d0b5e094ba3f26df54e4c9}{efl\+\_\+unref()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga4bc51e6b1f430f3f897c5947f9d743e3}{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. This functions 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}


Referenced by efl\+\_\+future\+\_\+use().

\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. 


\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(), 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(), 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 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 so 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 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 so 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 so 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 so 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 the referring object is deleted.

This is the same key store used by key\+\_\+data and key\+\_\+obj so 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 the referring object is deleted.

This is the same key store used by key\+\_\+data and key\+\_\+obj so 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_ga5348433e13206d274a99f34aa24aa581}\label{group__Eo_ga5348433e13206d274a99f34aa24aa581}} 
\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 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 to call the function efl\+\_\+manual\+\_\+free to free the memory allocated for this object.

Do not use, 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 destruct the object but not free the private data or the object itself.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga771244a803c49b9de3a478f5f447c15a}{efl\+\_\+manual\+\_\+free()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga771244a803c49b9de3a478f5f447c15a}\label{group__Eo_ga771244a803c49b9de3a478f5f447c15a}} 
\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__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 before with the parameter E\+I\+N\+A\+\_\+\+T\+R\+UE. An error will be printed 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_ga5348433e13206d274a99f34aa24aa581}{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_ga918e907f3d53acedd66da526cfc559ea}\label{group__Eo_ga918e907f3d53acedd66da526cfc559ea}} 
\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__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 not yet freed (but possibly destructed).\\
\hline
\end{DoxyParams}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eo_ga5348433e13206d274a99f34aa24aa581}{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 we 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. 

That is, how many times we have completed full init/shutdown cycles. Starts at 1 and incremeted on every call to shutdown that actually shuts down eo. \mbox{\Hypertarget{group__Eo_gaff488111192581384be69fc08532ce5a}\label{group__Eo_gaff488111192581384be69fc08532ce5a}} 
\index{Eo@{Eo}!object@{object}}
\index{object@{object}!Eo@{Eo}}
\subsubsection{\texorpdfstring{object}{object}}
{\footnotesize\ttfamily Efl\+\_\+\+Object$\ast$ \+\_\+\+Efl\+\_\+\+Event\+::object}



The object the event was called on. 

\begin{Desc}
\item[Examples\+: ]\par
\mbox{\hyperlink{emotion_signals_example_8c-example}{emotion\+\_\+signals\+\_\+example.\+c}}.\end{Desc}
\mbox{\Hypertarget{group__Eo_ga603cfeeb60813b1e4fe3c03f2746fd62}\label{group__Eo_ga603cfeeb60813b1e4fe3c03f2746fd62}} 
\index{Eo@{Eo}!desc@{desc}}
\index{desc@{desc}!Eo@{Eo}}
\subsubsection{\texorpdfstring{desc}{desc}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{struct__Efl__Event__Description}{Efl\+\_\+\+Event\+\_\+\+Description}}$\ast$ \+\_\+\+Efl\+\_\+\+Event\+::desc}



The event description. 

\mbox{\Hypertarget{group__Eo_ga677018d42b41fa1336b7f17b66ebb719}\label{group__Eo_ga677018d42b41fa1336b7f17b66ebb719}} 
\index{Eo@{Eo}!info@{info}}
\index{info@{info}!Eo@{Eo}}
\subsubsection{\texorpdfstring{info}{info}}
{\footnotesize\ttfamily void$\ast$ \+\_\+\+Efl\+\_\+\+Event\+::info}



Extra event information passed by the event caller. 

\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 [2/2]}}
{\footnotesize\ttfamily const \mbox{\hyperlink{struct__Efl__Event__Description}{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/2]}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eo_ga9bc76a6826ab748d9d798953d46fa88f}{Efl\+\_\+\+Event\+\_\+\+Cb}} \+\_\+\+Efl\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item\+::func}



The callback function. 

\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 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 [2/2]}}
{\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 we 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. 

That is, how many times we have completed full init/shutdown cycles. Starts at 1 and incremeted on every call to shutdown that actually shuts down eo. 