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


Generic object system.  


\subsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eo__Debug__Information}{Eo\textquotesingle{}s Debug information helper.}
\item 
\hyperlink{group__Eo__Events}{Eo\textquotesingle{}s Event Handling}
\item 
\hyperlink{group__Eo__Class}{Eo Class}
\item 
\hyperlink{group__Eo__Class__Class}{Eo\textquotesingle{}s Class class.}
\item 
\hyperlink{group__Eo__Class__Base}{Eo\textquotesingle{}s Base class.}
\end{DoxyCompactItemize}
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{struct__Eo__Op__Call__Data}{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data}
\item 
struct \hyperlink{struct__Eo__Call__Cache__Index}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index}
\item 
struct \hyperlink{struct__Eo__Call__Cache__Entry}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry}
\item 
struct \hyperlink{struct__Eo__Call__Cache__Off}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off}
\item 
struct \hyperlink{struct__Eo__Call__Cache}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache}
\item 
struct \hyperlink{struct__Eo__Event__Description}{\+\_\+\+Eo\+\_\+\+Event\+\_\+\+Description}
\begin{DoxyCompactList}\small\item\em This struct holds the description of a specific event. \end{DoxyCompactList}\item 
struct \hyperlink{struct__Eo__Callback__Array__Item}{\+\_\+\+Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}
\begin{DoxyCompactList}\small\item\em An item in an array of callback desc/func. \end{DoxyCompactList}\item 
struct \hyperlink{struct__Eo__Dbg__Info}{\+\_\+\+Eo\+\_\+\+Dbg\+\_\+\+Info}
\begin{DoxyCompactList}\small\item\em The structure for the debug info used by Eo. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eo_ga2bf694c3a95bfdc8e23b7ca6b86e82e6}\label{group__Eo_ga2bf694c3a95bfdc8e23b7ca6b86e82e6}} 
\#define {\bfseries E\+O\+\_\+\+C\+L\+A\+SS}~E\+O\+\_\+\+B\+A\+S\+E\+\_\+\+C\+L\+A\+SS
\item 
\mbox{\Hypertarget{group__Eo_gaa4ce018445e532ec89612472a8655a91}\label{group__Eo_gaa4ce018445e532ec89612472a8655a91}} 
\#define \hyperlink{group__Eo_gaa4ce018445e532ec89612472a8655a91}{E\+O\+\_\+\+N\+O\+OP}~((\hyperlink{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}{Eo\+\_\+\+Op}) 0)
\begin{DoxyCompactList}\small\item\em A special \hyperlink{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}{Eo\+\_\+\+Op} meaning \char`\"{}\+No operation\char`\"{}. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_gade0d3295e76c3aa012e37c21f14b769a}\label{group__Eo_gade0d3295e76c3aa012e37c21f14b769a}} 
\#define {\bfseries E\+O\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+S\+C\+R\+I\+P\+T\+I\+O\+N\+\_\+\+N\+O\+O\+PS}()~\{ N\+U\+LL, 0\}
\item 
\mbox{\Hypertarget{group__Eo_ga44c44325f49e70e82a60f620a0207b86}\label{group__Eo_ga44c44325f49e70e82a60f620a0207b86}} 
\#define {\bfseries E\+O\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+S\+C\+R\+I\+P\+T\+I\+O\+N\+\_\+\+O\+PS}(op\+\_\+descs)~\{ op\+\_\+descs, \hyperlink{group__Eina__Types__Group_ga7c1b6f81660b4e30516169e9e7d3261c}{E\+I\+N\+A\+\_\+\+C\+\_\+\+A\+R\+R\+A\+Y\+\_\+\+L\+E\+N\+G\+TH}(op\+\_\+descs) \}
\item 
\mbox{\Hypertarget{group__Eo_ga4680f012a6251da010db36fa01b30678}\label{group__Eo_ga4680f012a6251da010db36fa01b30678}} 
\#define {\bfseries E\+O\+\_\+\+C\+A\+L\+L\+\_\+\+C\+A\+C\+H\+E\+\_\+\+S\+I\+ZE}~1
\item 
\mbox{\Hypertarget{group__Eo_ga013d50405d128f25d6bf815c9a969b79}\label{group__Eo_ga013d50405d128f25d6bf815c9a969b79}} 
\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+LL}(...)~\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+
\item 
\mbox{\Hypertarget{group__Eo_ga02ac3914f88dc2428b3d5f9dc6deb079}\label{group__Eo_ga02ac3914f88dc2428b3d5f9dc6deb079}} 
\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+F\+U\+NC}(Name)~((const void $\ast$) Name)
\item 
\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP}(Name,  Def\+Ret)
\item 
\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}(Name,  Ret,  Def\+Ret)
\item 
\#define {\bfseries E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}(Name)
\item 
\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}(Name,  Ret,  Def\+Ret,  Arguments, ...)
\item 
\#define {\bfseries E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}(Name,  Arguments, ...)
\item 
\mbox{\Hypertarget{group__Eo_ga95aa005b42e2efb162b2807577fa30bb}\label{group__Eo_ga95aa005b42e2efb162b2807577fa30bb}} 
\#define {\bfseries \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+RY}(a)~(void$\ast$)a
\item 
\mbox{\Hypertarget{group__Eo_ga0a2deefc6a55babed76a79d0fc047797}\label{group__Eo_ga0a2deefc6a55babed76a79d0fc047797}} 
\#define {\bfseries E\+O\+\_\+\+O\+P\+\_\+\+F\+U\+NC}(\+\_\+api,  \+\_\+private)~\{ \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+RY(\+\_\+api), (void$\ast$)\+\_\+private, \hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ac4e797545871cc62ab5285181f81ca30}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR} \}
\item 
\mbox{\Hypertarget{group__Eo_ga03bf90351e8a17d371607d5f20010f5a}\label{group__Eo_ga03bf90351e8a17d371607d5f20010f5a}} 
\#define {\bfseries E\+O\+\_\+\+O\+P\+\_\+\+C\+L\+A\+S\+S\+\_\+\+F\+U\+NC}(\+\_\+api,  \+\_\+private)~\{ \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+RY(\+\_\+api), (void$\ast$)\+\_\+private, \hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a0cf29bf4e1e4a4af016cae21e22a6119}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+SS} \}
\item 
\mbox{\Hypertarget{group__Eo_gacebb31d8970354ac9520fcd11bc92f45}\label{group__Eo_gacebb31d8970354ac9520fcd11bc92f45}} 
\#define {\bfseries E\+O\+\_\+\+O\+P\+\_\+\+F\+U\+N\+C\+\_\+\+O\+V\+E\+R\+R\+I\+DE}(\+\_\+api,  \+\_\+private)~\{ \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+RY(\+\_\+api), (void$\ast$)\+\_\+private, \hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a59dbdfbffa9c3f19233a3a9c40d99ae3}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+DE} \}
\item 
\mbox{\Hypertarget{group__Eo_gac7b257395413c78af14555c3025478d1}\label{group__Eo_gac7b257395413c78af14555c3025478d1}} 
\#define {\bfseries E\+O\+\_\+\+O\+P\+\_\+\+C\+L\+A\+S\+S\+\_\+\+F\+U\+N\+C\+\_\+\+O\+V\+E\+R\+R\+I\+DE}(\+\_\+api,  \+\_\+private)~\{ \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+RY(\+\_\+api), (void$\ast$)\+\_\+private, \hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ab7758e017580b94cfe84e586aa9930ea}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+DE} \}
\item 
\#define {\bfseries \+\_\+eo\+\_\+do\+\_\+common}(eoid,  clsid,  is\+\_\+super, ...)
\item 
\#define {\bfseries \+\_\+eo\+\_\+do\+\_\+common\+\_\+ret}(eoid,  clsid,  is\+\_\+super,  ret\+\_\+tmp,  func)
\item 
\mbox{\Hypertarget{group__Eo_ga8ef6d27eb9eaa10de15f45e1c2271bf2}\label{group__Eo_ga8ef6d27eb9eaa10de15f45e1c2271bf2}} 
\#define {\bfseries eo\+\_\+do}(eoid, ...)~\+\_\+eo\+\_\+do\+\_\+common(eoid, N\+U\+LL, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}, \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)
\item 
\mbox{\Hypertarget{group__Eo_ga17fdb6af6e9cb394bf63a5a2334f0c94}\label{group__Eo_ga17fdb6af6e9cb394bf63a5a2334f0c94}} 
\#define {\bfseries eo\+\_\+do\+\_\+super}(eoid,  clsid,  func)~\+\_\+eo\+\_\+do\+\_\+common(eoid, clsid, \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}, func)
\item 
\mbox{\Hypertarget{group__Eo_gabe6d8dfacfad29a40d5b980c67303385}\label{group__Eo_gabe6d8dfacfad29a40d5b980c67303385}} 
\#define {\bfseries eo\+\_\+do\+\_\+ret}(eoid,  ret\+\_\+tmp,  func)~\+\_\+eo\+\_\+do\+\_\+common\+\_\+ret(eoid, N\+U\+LL, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+SE}, ret\+\_\+tmp, func)
\item 
\mbox{\Hypertarget{group__Eo_gaafa44ee04ff4152faf8da2a99060d27b}\label{group__Eo_gaafa44ee04ff4152faf8da2a99060d27b}} 
\#define {\bfseries eo\+\_\+do\+\_\+super\+\_\+ret}(eoid,  clsid,  ret\+\_\+tmp,  func)~\+\_\+eo\+\_\+do\+\_\+common\+\_\+ret(eoid, clsid, \hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{E\+I\+N\+A\+\_\+\+T\+R\+UE}, ret\+\_\+tmp, func)
\item 
\#define {\bfseries eo\+\_\+do\+\_\+part}(eoid,  part\+\_\+func, ...)
\item 
\#define {\bfseries \+\_\+eo\+\_\+add\+\_\+common}(klass,  parent,  is\+\_\+ref, ...)
\item 
\#define \hyperlink{group__Eo_ga5a832ab70d280281cca80fc6d4f29741}{eo\+\_\+add}(klass,  parent, ...)~\+\_\+eo\+\_\+add\+\_\+common(klass, parent, \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 \hyperlink{group__Eo_ga93605d246a13f5dfdd68b4fcbd898538}{eo\+\_\+add\+\_\+ref}(klass,  parent, ...)~\+\_\+eo\+\_\+add\+\_\+common(klass, parent, \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 \hyperlink{group__Eo_ga1e85aff00c69f0ec5b835b409c557f3e}{eo\+\_\+data\+\_\+xref}(obj,  klass,  ref\+\_\+obj)~\hyperlink{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}{eo\+\_\+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 \hyperlink{group__Eo_ga89005ecf791b0e4d7b516b0537e7dbbb}{eo\+\_\+data\+\_\+ref}(obj,  klass)~\hyperlink{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}{eo\+\_\+data\+\_\+xref\+\_\+internal}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, klass, (const \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 \hyperlink{group__Eo_ga71648d4468c17c3e789e0ae7beca1e29}{eo\+\_\+data\+\_\+xunref}(obj,  data,  ref\+\_\+obj)~\hyperlink{group__Eo_ga62cdfb6c91cd5b95f612bac2c1c5fcaa}{eo\+\_\+data\+\_\+xunref\+\_\+internal}(obj, data, ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Use this function if you used eo\+\_\+data\+\_\+xref to reference the data. \end{DoxyCompactList}\item 
\#define \hyperlink{group__Eo_ga18c6aca226abd9f6b4e35cc165ccb1cc}{eo\+\_\+data\+\_\+unref}(obj,  data)~\hyperlink{group__Eo_ga62cdfb6c91cd5b95f612bac2c1c5fcaa}{eo\+\_\+data\+\_\+xunref\+\_\+internal}(obj, data, obj)
\begin{DoxyCompactList}\small\item\em Use this function if you used eo\+\_\+data\+\_\+ref to reference the data. \end{DoxyCompactList}\item 
\#define \hyperlink{group__Eo_ga67fca40382aa902b28dd3eb5a9a70ea5}{eo\+\_\+xref}(obj,  ref\+\_\+obj)~\hyperlink{group__Eo_ga7e81f986e5dc8d971d73ad34212f3810}{eo\+\_\+xref\+\_\+internal}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Convenience macro around \hyperlink{group__Eo_ga7e81f986e5dc8d971d73ad34212f3810}{eo\+\_\+xref\+\_\+internal()} \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\mbox{\Hypertarget{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}\label{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}} 
typedef struct \+\_\+\+Eo\+\_\+\+Opaque \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}
\begin{DoxyCompactList}\small\item\em The basic Object type. \end{DoxyCompactList}\item 
typedef \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class}
\begin{DoxyCompactList}\small\item\em The basic class type -\/ should be removed, just for compat. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga8448c305a64d7888d20bd8458e947593}\label{group__Eo_ga8448c305a64d7888d20bd8458e947593}} 
typedef enum \hyperlink{group__Eo_ga472ce3b4fd12355db81217d7594d6b56}{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type} {\bfseries Eo\+\_\+\+Op\+\_\+\+Type}
\item 
\mbox{\Hypertarget{group__Eo_gab9449c37f2cf9e9dbbd06d6cf91fd75d}\label{group__Eo_gab9449c37f2cf9e9dbbd06d6cf91fd75d}} 
typedef struct \hyperlink{struct__Eo__Event__Description}{\+\_\+\+Eo\+\_\+\+Event\+\_\+\+Description} \hyperlink{group__Eo_gab9449c37f2cf9e9dbbd06d6cf91fd75d}{Eo\+\_\+\+Event\+\_\+\+Description2}
\begin{DoxyCompactList}\small\item\em X\+XX\+: Hack until fixed in Eolian. \end{DoxyCompactList}\item 
typedef \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}($\ast$ \hyperlink{group__Eo_ga874409d9231a1064a52a07009a184bd4}{Eo\+\_\+\+Event\+\_\+\+Cb}) (void $\ast$data, \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const \hyperlink{group__Eo_gab9449c37f2cf9e9dbbd06d6cf91fd75d}{Eo\+\_\+\+Event\+\_\+\+Description2} $\ast$desc, void $\ast$event\+\_\+info)
\begin{DoxyCompactList}\small\item\em An event callback prototype. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}\label{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}} 
typedef unsigned int \hyperlink{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}{Eo\+\_\+\+Op}
\begin{DoxyCompactList}\small\item\em The Eo operation type id. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_ga69694b43346c61d28fc242d704dee7d3}\label{group__Eo_ga69694b43346c61d28fc242d704dee7d3}} 
typedef struct \hyperlink{struct__Eo__Op__Call__Data}{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data} {\bfseries Eo\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data}
\item 
\mbox{\Hypertarget{group__Eo_ga8ad7310d9e885cd13f9dc1cfc9f81513}\label{group__Eo_ga8ad7310d9e885cd13f9dc1cfc9f81513}} 
typedef struct \hyperlink{struct__Eo__Call__Cache__Index}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index} {\bfseries Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index}
\item 
\mbox{\Hypertarget{group__Eo_ga8dbc5d5ea9aa8695f02c5c1a21b718d3}\label{group__Eo_ga8dbc5d5ea9aa8695f02c5c1a21b718d3}} 
typedef struct \hyperlink{struct__Eo__Call__Cache__Entry}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry} {\bfseries Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry}
\item 
\mbox{\Hypertarget{group__Eo_ga1aef1724a258807c164fc121372536dd}\label{group__Eo_ga1aef1724a258807c164fc121372536dd}} 
typedef struct \hyperlink{struct__Eo__Call__Cache__Off}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off} {\bfseries Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off}
\item 
\mbox{\Hypertarget{group__Eo_gaab2eb1aaf218ea62d4fc1c0e4b06daa0}\label{group__Eo_gaab2eb1aaf218ea62d4fc1c0e4b06daa0}} 
typedef struct \hyperlink{struct__Eo__Call__Cache}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache} {\bfseries Eo\+\_\+\+Call\+\_\+\+Cache}
\item 
\mbox{\Hypertarget{group__Eo_ga4e70e342d95de3379f9ec062310727aa}\label{group__Eo_ga4e70e342d95de3379f9ec062310727aa}} 
typedef struct \hyperlink{struct__Eo__Event__Description}{\+\_\+\+Eo\+\_\+\+Event\+\_\+\+Description} \hyperlink{group__Eo_ga4e70e342d95de3379f9ec062310727aa}{Eo\+\_\+\+Event\+\_\+\+Description}
\begin{DoxyCompactList}\small\item\em This struct holds the description of a specific event. \end{DoxyCompactList}\item 
typedef struct \hyperlink{struct__Eo__Callback__Array__Item}{\+\_\+\+Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item} \hyperlink{group__Eo_ga9c6f106377afb7cdba1fe8d17f71a5f7}{Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}
\begin{DoxyCompactList}\small\item\em An item in an array of callback desc/func. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_gaeb3b77f7c0931738570665c5a4843fc5}\label{group__Eo_gaeb3b77f7c0931738570665c5a4843fc5}} 
typedef struct \hyperlink{struct__Eo__Dbg__Info}{\+\_\+\+Eo\+\_\+\+Dbg\+\_\+\+Info} \hyperlink{group__Eo_gaeb3b77f7c0931738570665c5a4843fc5}{Eo\+\_\+\+Dbg\+\_\+\+Info}
\begin{DoxyCompactList}\small\item\em The structure for the debug info used by Eo. \end{DoxyCompactList}\item 
typedef short \hyperlink{group__Eo_gac7db0831a9f86713a4bd623fd3e0a46e}{Eo\+\_\+\+Callback\+\_\+\+Priority}
\begin{DoxyCompactList}\small\item\em Callback priority value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \hyperlink{group__Eo_ga472ce3b4fd12355db81217d7594d6b56}{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type} \{ \newline
\hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a4d697ec91df7a0500ab176a48f01a3d8}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+ID} = -\/1, 
\newline
\hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ac4e797545871cc62ab5285181f81ca30}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR} = 0, 
\newline
\hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a0cf29bf4e1e4a4af016cae21e22a6119}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+SS}, 
\newline
\hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a59dbdfbffa9c3f19233a3a9c40d99ae3}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+DE}, 
\newline
\hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ab7758e017580b94cfe84e586aa9930ea}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+DE}
 \}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eo_ga530a3dba7b46b40c20aeaeaab5bc322e}{eo\+\_\+init} (void)
\begin{DoxyCompactList}\small\item\em Init the eo subsystem. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eo_ga46ddce2ed4814e951e824a7b213729dc}{eo\+\_\+shutdown} (void)
\begin{DoxyCompactList}\small\item\em Shutdown the eo subsystem. \end{DoxyCompactList}\item 
\mbox{\Hypertarget{group__Eo_gae91357edafba7c5a0c67c04726588f5e}\label{group__Eo_gae91357edafba7c5a0c67c04726588f5e}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}{Eo\+\_\+\+Op} {\bfseries \+\_\+eo\+\_\+api\+\_\+op\+\_\+id\+\_\+get} (const void $\ast$api\+\_\+func)
\item 
\mbox{\Hypertarget{group__Eo_gad1519fb91ff24f2f9016fb68bebe1045}\label{group__Eo_gad1519fb91ff24f2f9016fb68bebe1045}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} {\bfseries \+\_\+eo\+\_\+call\+\_\+resolve} (const char $\ast$func\+\_\+name, \hyperlink{struct__Eo__Op__Call__Data}{Eo\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data} $\ast$call, \hyperlink{struct__Eo__Call__Cache}{Eo\+\_\+\+Call\+\_\+\+Cache} $\ast$callcache, const char $\ast$file, int line)
\item 
\mbox{\Hypertarget{group__Eo_ga02d5b6be87d491a7492ad228e84d17fc}\label{group__Eo_ga02d5b6be87d491a7492ad228e84d17fc}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} {\bfseries \+\_\+eo\+\_\+do\+\_\+start} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class} $\ast$cur\+\_\+klass, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} is\+\_\+super, void $\ast$eo\+\_\+stack)
\item 
\mbox{\Hypertarget{group__Eo_ga20255a04f8f5399b00bacc7c604dead4}\label{group__Eo_ga20255a04f8f5399b00bacc7c604dead4}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void {\bfseries \+\_\+eo\+\_\+do\+\_\+end} (void $\ast$eo\+\_\+stack)
\item 
\mbox{\Hypertarget{group__Eo_ga852a08833e580a812c21a1ebc012f41f}\label{group__Eo_ga852a08833e580a812c21a1ebc012f41f}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$ {\bfseries \+\_\+eo\+\_\+add\+\_\+end} (void $\ast$eo\+\_\+stack)
\item 
\mbox{\Hypertarget{group__Eo_ga2085af45eceab40fbfbeb5ceea6b330e}\label{group__Eo_ga2085af45eceab40fbfbeb5ceea6b330e}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void $\ast$ {\bfseries \+\_\+eo\+\_\+stack\+\_\+get} (void)
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class} $\ast$ \hyperlink{group__Eo_ga477fd56134445a5be7a70ca49dfec4a4}{eo\+\_\+class\+\_\+get} (const \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_gae7a2f3558dd9e3c47204abc5ae8b09f5}\label{group__Eo_gae7a2f3558dd9e3c47204abc5ae8b09f5}} 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$ {\bfseries \+\_\+eo\+\_\+add\+\_\+internal\+\_\+start} (const char $\ast$file, int line, const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class} $\ast$klass\+\_\+id, \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$parent, \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} ref)
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void $\ast$ \hyperlink{group__Eo_gaee1db0fe03226437f2179eeb1c963409}{eo\+\_\+data\+\_\+get} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class} $\ast$klass) \hyperlink{group__Eina__Types__Group_gad5b2116495471db12a34bab9a34edfaa}{E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+ED}
\begin{DoxyCompactList}\small\item\em Get a pointer to the data of an object for a specific class. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void $\ast$ \hyperlink{group__Eo_gab58151bff38dca3ce1f01568004e61cf}{eo\+\_\+data\+\_\+scope\+\_\+get} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class} $\ast$klass)
\begin{DoxyCompactList}\small\item\em Get a pointer to the data of an object for a specific class. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void $\ast$ \hyperlink{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}{eo\+\_\+data\+\_\+xref\+\_\+internal} (const char $\ast$file, int line, const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class} $\ast$klass, const \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 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Eo_ga62cdfb6c91cd5b95f612bac2c1c5fcaa}{eo\+\_\+data\+\_\+xunref\+\_\+internal} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, void $\ast$data, const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$ref\+\_\+obj)
\begin{DoxyCompactList}\small\item\em Decrement the object data reference count by 1. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$ \hyperlink{group__Eo_gaf04e78757d6913f8d437515d0baf5c6d}{eo\+\_\+ref} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Increment the object\textquotesingle{}s reference count by 1. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Eo_ga436137248d916d6dee56bb6ec545251e}{eo\+\_\+unref} (const \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 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int \hyperlink{group__Eo_gad5568684512a49ac83ae9af52d79d539}{eo\+\_\+ref\+\_\+get} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Return the ref count of the object passed. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Eo_ga344057cd5a0dfda4229376ef2ce827d1}{eo\+\_\+del} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Unrefs the object and reparents it to N\+U\+LL. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$ \hyperlink{group__Eo_ga7e81f986e5dc8d971d73ad34212f3810}{eo\+\_\+xref\+\_\+internal} (const char $\ast$file, int line, \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const \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 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Eo_ga554c4ed26d69bd5fbd2f6c6871e83d63}{eo\+\_\+xunref} (\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, const \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 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Eo_ga898921f03bd535612c442ffcfa084cf1}{eo\+\_\+manual\+\_\+free\+\_\+set} (\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj, \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 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eo_gad885d4fb6f7f6fa7644f2f8d0d06158a}{eo\+\_\+manual\+\_\+free} (\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Frees the object. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Eo_gad815a5f04d144d04dfecfd2dad9f431c}{eo\+\_\+destructed\+\_\+is} (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$obj)
\begin{DoxyCompactList}\small\item\em Checks if the object was already descructed (only relevant for manual\+\_\+free objects). \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} Eina\+\_\+\+Spinlock \hyperlink{group__Eo_gaf20d0fd14d4342416d3591c211a9e81f}{\+\_\+eo\+\_\+class\+\_\+creation\+\_\+lock}
\begin{DoxyCompactList}\small\item\em This variable is used for locking purposes in the class\+\_\+get function defined in \hyperlink{group__Eo__Class_gacd443a75109f3e7092fae1b4d4bfee38}{E\+O\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} Eina\+\_\+\+Spinlock \hyperlink{group__Eo_ga44b5710f56e35a78cbaf94bb5cd1a870}{\+\_\+eo\+\_\+class\+\_\+creation\+\_\+lock}
\begin{DoxyCompactList}\small\item\em This variable is used for locking purposes in the class\+\_\+get function defined in \hyperlink{group__Eo__Class_gacd443a75109f3e7092fae1b4d4bfee38}{E\+O\+\_\+\+D\+E\+F\+I\+N\+E\+\_\+\+C\+L\+A\+SS}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Generic object system. 



\subsection{Macro Definition Documentation}
\mbox{\Hypertarget{group__Eo_ga9b0fb7e511d8ef0befb480d829e11cb1}\label{group__Eo_ga9b0fb7e511d8ef0befb480d829e11cb1}} 
\index{Eo@{Eo}!E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP}}
\index{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP}!Eo@{Eo}}
\subsubsection{\texorpdfstring{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP}{EO\_FUNC\_COMMON\_OP}}
{\footnotesize\ttfamily \#define E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+OP(\begin{DoxyParamCaption}\item[{}]{Name,  }\item[{}]{Def\+Ret }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keyword}{static} \hyperlink{struct__Eo__Call__Cache}{Eo\_Call\_Cache} \_\_\_cache; \textcolor{comment}{/* static 0 by default */}           \(\backslash\)
     Eo\_Op\_Call\_Data \_\_\_call;                                           \(\backslash\)
     if (\hyperlink{group__Eina__Types__Group_ga70675a75a5fb3e9a51d5af985a1fd3aa}{EINA\_UNLIKELY}(\_\_\_cache.op == \hyperlink{group__Eo_gaa4ce018445e532ec89612472a8655a91}{EO\_NOOP}))                         \(\backslash\)
       \{                                                                \(\backslash\)
          \_\_\_cache.op = \_eo\_api\_op\_id\_get(EO\_FUNC\_COMMON\_OP\_FUNC(Name)); \(\backslash\)
          if (\_\_\_cache.op == \hyperlink{group__Eo_gaa4ce018445e532ec89612472a8655a91}{EO\_NOOP}) \textcolor{keywordflow}{return} DefRet;                    \(\backslash\)
       \}                                                                \(\backslash\)
     if (!\_eo\_call\_resolve(#Name, &\_\_\_call, &\_\_\_cache,                  \(\backslash\)
                           \_\_FILE\_\_, \_\_LINE\_\_)) \textcolor{keywordflow}{return} DefRet;          \(\backslash\)
     \_Eo\_##Name##\_func \_func\_ = (\_Eo\_##Name##\_func) \_\_\_call.func;       \(\backslash\)
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga567b38d37bb14fa93e544531ea9726ea}\label{group__Eo_ga567b38d37bb14fa93e544531ea9726ea}} 
\index{Eo@{Eo}!E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}}
\index{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}!Eo@{Eo}}
\subsubsection{\texorpdfstring{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}{EO\_FUNC\_BODY}}
{\footnotesize\ttfamily \#define E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(\begin{DoxyParamCaption}\item[{}]{Name,  }\item[{}]{Ret,  }\item[{}]{Def\+Ret }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
Ret                                                                   \(\backslash\)
  Name(\textcolor{keywordtype}{void})                                                            \(\backslash\)
  \{                                                                     \(\backslash\)
     typedef Ret (*\_Eo\_##Name##\_func)(\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} *, \textcolor{keywordtype}{void} *obj\_data);            \(\backslash\)
     Ret \_r;                                                            \(\backslash\)
     EO\_FUNC\_COMMON\_OP(Name, DefRet);                                   \(\backslash\)
     \_r = \_func\_(\_\_\_call.obj, \_\_\_call.data);                            \(\backslash\)
     return \_r;                                                         \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_gac1214b5430084987396165a274919fee}\label{group__Eo_gac1214b5430084987396165a274919fee}} 
\index{Eo@{Eo}!E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY@{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}}
\index{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY@{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}!Eo@{Eo}}
\subsubsection{\texorpdfstring{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY}{EO\_VOID\_FUNC\_BODY}}
{\footnotesize\ttfamily \#define E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+DY(\begin{DoxyParamCaption}\item[{}]{Name }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
void                                                                    \(\backslash\)
  Name(\textcolor{keywordtype}{void})                                                            \(\backslash\)
  \{                                                                     \(\backslash\)
     typedef void (*\_Eo\_##Name##\_func)(\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} *, \textcolor{keywordtype}{void} *obj\_data);           \(\backslash\)
     EO\_FUNC\_COMMON\_OP(Name, );                                         \(\backslash\)
     \_func\_(\_\_\_call.obj, \_\_\_call.data);                                 \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga01fb529db759396c86c9aa1fb71d5c68}\label{group__Eo_ga01fb529db759396c86c9aa1fb71d5c68}} 
\index{Eo@{Eo}!E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}}
\index{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}!Eo@{Eo}}
\subsubsection{\texorpdfstring{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}{EO\_FUNC\_BODYV}}
{\footnotesize\ttfamily \#define E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(\begin{DoxyParamCaption}\item[{}]{Name,  }\item[{}]{Ret,  }\item[{}]{Def\+Ret,  }\item[{}]{Arguments,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
Ret                                                                   \(\backslash\)
  Name(\_\_VA\_ARGS\_\_)                                                     \(\backslash\)
  \{                                                                     \(\backslash\)
     typedef Ret (*\_Eo\_##Name##\_func)(\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} *, \textcolor{keywordtype}{void} *obj\_data, \_\_VA\_ARGS\_\_); \(\backslash\)
     Ret \_r;                                                            \(\backslash\)
     EO\_FUNC\_COMMON\_OP(Name, DefRet);                                   \(\backslash\)
     \_r = \_func\_(\_\_\_call.obj, \_\_\_call.data, Arguments);                 \(\backslash\)
     return \_r;                                                         \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga8f538747358cdc39c118079c1aa75862}\label{group__Eo_ga8f538747358cdc39c118079c1aa75862}} 
\index{Eo@{Eo}!E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV@{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}}
\index{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV@{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}!Eo@{Eo}}
\subsubsection{\texorpdfstring{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV}{EO\_VOID\_FUNC\_BODYV}}
{\footnotesize\ttfamily \#define E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+YV(\begin{DoxyParamCaption}\item[{}]{Name,  }\item[{}]{Arguments,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
void                                                                  \(\backslash\)
  Name(\_\_VA\_ARGS\_\_)                                                     \(\backslash\)
  \{                                                                     \(\backslash\)
     typedef void (*\_Eo\_##Name##\_func)(\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} *, \textcolor{keywordtype}{void} *obj\_data, \_\_VA\_ARGS\_\_); \(\backslash\)
     EO\_FUNC\_COMMON\_OP(Name, );                                         \(\backslash\)
     \_func\_(\_\_\_call.obj, \_\_\_call.data, Arguments);                      \(\backslash\)
  \}
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_gaf8fb6f4353ba41001b10a014d6c9f1f5}\label{group__Eo_gaf8fb6f4353ba41001b10a014d6c9f1f5}} 
\index{Eo@{Eo}!\+\_\+eo\+\_\+do\+\_\+common@{\+\_\+eo\+\_\+do\+\_\+common}}
\index{\+\_\+eo\+\_\+do\+\_\+common@{\+\_\+eo\+\_\+do\+\_\+common}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+eo\+\_\+do\+\_\+common}{\_eo\_do\_common}}
{\footnotesize\ttfamily \#define \+\_\+eo\+\_\+do\+\_\+common(\begin{DoxyParamCaption}\item[{}]{eoid,  }\item[{}]{clsid,  }\item[{}]{is\+\_\+super,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                                                  \(\backslash\)
       \_eo\_do\_start(eoid, clsid, is\_super, \_eo\_stack\_get()); \(\backslash\)
       \_\_VA\_ARGS\_\_;                                                     \(\backslash\)
       \_eo\_do\_end(\_eo\_stack\_get());                                                    \(\backslash\)
  \} \textcolor{keywordflow}{while} (0)
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga2a02dc309889fd9690050f9f24c28cc1}\label{group__Eo_ga2a02dc309889fd9690050f9f24c28cc1}} 
\index{Eo@{Eo}!\+\_\+eo\+\_\+do\+\_\+common\+\_\+ret@{\+\_\+eo\+\_\+do\+\_\+common\+\_\+ret}}
\index{\+\_\+eo\+\_\+do\+\_\+common\+\_\+ret@{\+\_\+eo\+\_\+do\+\_\+common\+\_\+ret}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+eo\+\_\+do\+\_\+common\+\_\+ret}{\_eo\_do\_common\_ret}}
{\footnotesize\ttfamily \#define \+\_\+eo\+\_\+do\+\_\+common\+\_\+ret(\begin{DoxyParamCaption}\item[{}]{eoid,  }\item[{}]{clsid,  }\item[{}]{is\+\_\+super,  }\item[{}]{ret\+\_\+tmp,  }\item[{}]{func }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
(                                                                     \(\backslash\)
       \_eo\_do\_start(eoid, clsid, is\_super, \_eo\_stack\_get()), \(\backslash\)
       ret\_tmp = func,                                                  \(\backslash\)
       \_eo\_do\_end(\_eo\_stack\_get()),                                                    \(\backslash\)
       ret\_tmp                                                          \(\backslash\)
  )
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga182f5cde2bc0b6e31fe5d6cacf2a09f3}\label{group__Eo_ga182f5cde2bc0b6e31fe5d6cacf2a09f3}} 
\index{Eo@{Eo}!eo\+\_\+do\+\_\+part@{eo\+\_\+do\+\_\+part}}
\index{eo\+\_\+do\+\_\+part@{eo\+\_\+do\+\_\+part}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+do\+\_\+part}{eo\_do\_part}}
{\footnotesize\ttfamily \#define eo\+\_\+do\+\_\+part(\begin{DoxyParamCaption}\item[{}]{eoid,  }\item[{}]{part\+\_\+func,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{ \(\backslash\)
       Eo *\_\_eo\_part = eoid; \(\backslash\)
       eo\_do(eoid, \_\_eo\_part = part\_func); \(\backslash\)
       eo\_do(\_\_eo\_part, \_\_VA\_ARGS\_\_); \(\backslash\)
  \} \textcolor{keywordflow}{while} (0)
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga0f2f5c3431264a01ee4145019b3456e9}\label{group__Eo_ga0f2f5c3431264a01ee4145019b3456e9}} 
\index{Eo@{Eo}!\+\_\+eo\+\_\+add\+\_\+common@{\+\_\+eo\+\_\+add\+\_\+common}}
\index{\+\_\+eo\+\_\+add\+\_\+common@{\+\_\+eo\+\_\+add\+\_\+common}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+eo\+\_\+add\+\_\+common}{\_eo\_add\_common}}
{\footnotesize\ttfamily \#define \+\_\+eo\+\_\+add\+\_\+common(\begin{DoxyParamCaption}\item[{}]{klass,  }\item[{}]{parent,  }\item[{}]{is\+\_\+ref,  }\item[{}]{... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}
( \(\backslash\)
     \_eo\_do\_start(\_eo\_add\_internal\_start(\_\_FILE\_\_, \_\_LINE\_\_, klass, \hyperlink{group__Efl__Cxx__API_ga9a67daec890c873d3df9cf33b2ddd187}{parent}, is\_ref), \(\backslash\)
        klass, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\_FALSE}, \_eo\_stack\_get()) \(\backslash\)
     , ##\_\_VA\_ARGS\_\_, \(\backslash\)
     (\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} *) \_eo\_add\_end(\_eo\_stack\_get()) \(\backslash\)
   )
\end{DoxyCode}
\mbox{\Hypertarget{group__Eo_ga5a832ab70d280281cca80fc6d4f29741}\label{group__Eo_ga5a832ab70d280281cca80fc6d4f29741}} 
\index{Eo@{Eo}!eo\+\_\+add@{eo\+\_\+add}}
\index{eo\+\_\+add@{eo\+\_\+add}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+add}{eo\_add}}
{\footnotesize\ttfamily \#define eo\+\_\+add(\begin{DoxyParamCaption}\item[{}]{klass,  }\item[{}]{parent,  }\item[{}]{... }\end{DoxyParamCaption})~\+\_\+eo\+\_\+add\+\_\+common(klass, parent, \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 eo\+\_\+unref on the child. This is convenient in C.

If you want a more \char`\"{}consistent\char`\"{} behaviour, take a look at \hyperlink{group__Eo_ga93605d246a13f5dfdd68b4fcbd898538}{eo\+\_\+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\+\_\+animator\+\_\+add(), ecore\+\_\+animator\+\_\+timeline\+\_\+add(), ecore\+\_\+con\+\_\+eet\+\_\+client\+\_\+new(), ecore\+\_\+con\+\_\+eet\+\_\+server\+\_\+new(), ecore\+\_\+con\+\_\+server\+\_\+add(), ecore\+\_\+con\+\_\+server\+\_\+connect(), ecore\+\_\+con\+\_\+url\+\_\+new(), ecore\+\_\+exe\+\_\+pipe\+\_\+run(), ecore\+\_\+idle\+\_\+enterer\+\_\+add(), ecore\+\_\+idle\+\_\+enterer\+\_\+before\+\_\+add(), ecore\+\_\+idle\+\_\+exiter\+\_\+add(), ecore\+\_\+idler\+\_\+add(), ecore\+\_\+init(), ecore\+\_\+job\+\_\+add(), ecore\+\_\+poller\+\_\+add(), ecore\+\_\+timer\+\_\+add(), ecore\+\_\+timer\+\_\+dump(), edje\+\_\+audio\+\_\+channel\+\_\+mute\+\_\+get(), edje\+\_\+edit\+\_\+object\+\_\+add(), emotion\+\_\+object\+\_\+add(), 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_ga93605d246a13f5dfdd68b4fcbd898538}\label{group__Eo_ga93605d246a13f5dfdd68b4fcbd898538}} 
\index{Eo@{Eo}!eo\+\_\+add\+\_\+ref@{eo\+\_\+add\+\_\+ref}}
\index{eo\+\_\+add\+\_\+ref@{eo\+\_\+add\+\_\+ref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+add\+\_\+ref}{eo\_add\_ref}}
{\footnotesize\ttfamily \#define eo\+\_\+add\+\_\+ref(\begin{DoxyParamCaption}\item[{}]{klass,  }\item[{}]{parent,  }\item[{}]{... }\end{DoxyParamCaption})~\+\_\+eo\+\_\+add\+\_\+common(klass, parent, \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 \hyperlink{group__Eo_ga436137248d916d6dee56bb6ec545251e}{eo\+\_\+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}


Referenced by eo\+::abstract\+\_\+class\+::abstract\+\_\+class(), efl\+::gfx\+::gradient\+::base\+::base(), efl\+::gfx\+::base\+::base(), evas\+::common\+\_\+interface\+::common\+\_\+interface(), efl\+::control\+::control(), efl\+::gfx\+::fill\+::fill(), efl\+::gfx\+::filter\+::filter(), evas\+::filter\+::filter(), efl\+::image\+::image(), efl\+::gfx\+::gradient\+::linear\+::linear(), efl\+::player\+::player(), efl\+::gfx\+::gradient\+::radial\+::radial(), efl\+::gfx\+::shape\+::shape(), evas\+::signal\+\_\+interface\+::signal\+\_\+interface(), efl\+::gfx\+::stack\+::stack(), efl\+::text\+::text(), efl\+::text\+\_\+properties\+::text\+\_\+properties(), and efl\+::gfx\+::view\+::view().

\mbox{\Hypertarget{group__Eo_ga1e85aff00c69f0ec5b835b409c557f3e}\label{group__Eo_ga1e85aff00c69f0ec5b835b409c557f3e}} 
\index{Eo@{Eo}!eo\+\_\+data\+\_\+xref@{eo\+\_\+data\+\_\+xref}}
\index{eo\+\_\+data\+\_\+xref@{eo\+\_\+data\+\_\+xref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+data\+\_\+xref}{eo\_data\_xref}}
{\footnotesize\ttfamily \#define eo\+\_\+data\+\_\+xref(\begin{DoxyParamCaption}\item[{}]{obj,  }\item[{}]{klass,  }\item[{}]{ref\+\_\+obj }\end{DoxyParamCaption})~\hyperlink{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}{eo\+\_\+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 \hyperlink{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}{eo\+\_\+data\+\_\+xref\+\_\+internal()} \mbox{\Hypertarget{group__Eo_ga89005ecf791b0e4d7b516b0537e7dbbb}\label{group__Eo_ga89005ecf791b0e4d7b516b0537e7dbbb}} 
\index{Eo@{Eo}!eo\+\_\+data\+\_\+ref@{eo\+\_\+data\+\_\+ref}}
\index{eo\+\_\+data\+\_\+ref@{eo\+\_\+data\+\_\+ref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+data\+\_\+ref}{eo\_data\_ref}}
{\footnotesize\ttfamily \#define eo\+\_\+data\+\_\+ref(\begin{DoxyParamCaption}\item[{}]{obj,  }\item[{}]{klass }\end{DoxyParamCaption})~\hyperlink{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}{eo\+\_\+data\+\_\+xref\+\_\+internal}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, klass, (const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$)obj)}



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

Convenience macro around \hyperlink{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}{eo\+\_\+data\+\_\+xref\+\_\+internal()} 

Referenced by edje\+\_\+edit\+\_\+object\+\_\+add(), and evas\+\_\+gl\+\_\+new().

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



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

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



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

Convenience macro around eo\+\_\+data\+\_\+unref\+\_\+internal() \begin{DoxySeeAlso}{See also}
\hyperlink{group__Eo_ga89005ecf791b0e4d7b516b0537e7dbbb}{eo\+\_\+data\+\_\+ref()} 
\end{DoxySeeAlso}


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

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



Convenience macro around \hyperlink{group__Eo_ga7e81f986e5dc8d971d73ad34212f3810}{eo\+\_\+xref\+\_\+internal()} 

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eo_ga67fca40382aa902b28dd3eb5a9a70ea5}{eo\+\_\+xref()} 
\end{DoxySeeAlso}


\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__Eo_ga88d29df76a2921aa5478803156d83be5}\label{group__Eo_ga88d29df76a2921aa5478803156d83be5}} 
\index{Eo@{Eo}!Eo\+\_\+\+Class@{Eo\+\_\+\+Class}}
\index{Eo\+\_\+\+Class@{Eo\+\_\+\+Class}!Eo@{Eo}}
\subsubsection{\texorpdfstring{Eo\+\_\+\+Class}{Eo\_Class}}
{\footnotesize\ttfamily \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class}}



The basic class type -\/ should be removed, just for compat. 

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000029}{Deprecated}]\end{DoxyRefDesc}
\mbox{\Hypertarget{group__Eo_ga874409d9231a1064a52a07009a184bd4}\label{group__Eo_ga874409d9231a1064a52a07009a184bd4}} 
\index{Eo@{Eo}!Eo\+\_\+\+Event\+\_\+\+Cb@{Eo\+\_\+\+Event\+\_\+\+Cb}}
\index{Eo\+\_\+\+Event\+\_\+\+Cb@{Eo\+\_\+\+Event\+\_\+\+Cb}!Eo@{Eo}}
\subsubsection{\texorpdfstring{Eo\+\_\+\+Event\+\_\+\+Cb}{Eo\_Event\_Cb}}
{\footnotesize\ttfamily Eo\+\_\+\+Event\+\_\+\+Cb}



An event callback prototype. 


\begin{DoxyParams}{Parameters}
{\em data} & The user data registered with the callback. \\
\hline
{\em obj} & The object which initiated the event. \\
\hline
{\em desc} & The event\textquotesingle{}s description. \\
\hline
{\em event\+\_\+info} & additional data passed with the event. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
\hyperlink{group__Eo__Events_gaafa2468466d30d905df7b8ba6c653f01}{E\+O\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+S\+T\+OP} to stop calling additional callbacks for the event, \hyperlink{group__Eo__Events_ga3396362a2c3fd7cf1c73c1eea6cb0abf}{E\+O\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+C\+O\+N\+T\+I\+N\+UE} to continue. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Eo_ga9c6f106377afb7cdba1fe8d17f71a5f7}\label{group__Eo_ga9c6f106377afb7cdba1fe8d17f71a5f7}} 
\index{Eo@{Eo}!Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item@{Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}}
\index{Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item@{Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}!Eo@{Eo}}
\subsubsection{\texorpdfstring{Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}{Eo\_Callback\_Array\_Item}}
{\footnotesize\ttfamily typedef struct \hyperlink{struct__Eo__Callback__Array__Item}{\+\_\+\+Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}  \hyperlink{group__Eo_ga9c6f106377afb7cdba1fe8d17f71a5f7}{Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}}



An item in an array of callback desc/func. 

See also \hyperlink{group__Eo__Events_ga7cc24c65cb94397dbeb173068d5918b2}{eo\+\_\+event\+\_\+callback\+\_\+array\+\_\+add}. \mbox{\Hypertarget{group__Eo_gac7db0831a9f86713a4bd623fd3e0a46e}\label{group__Eo_gac7db0831a9f86713a4bd623fd3e0a46e}} 
\index{Eo@{Eo}!Eo\+\_\+\+Callback\+\_\+\+Priority@{Eo\+\_\+\+Callback\+\_\+\+Priority}}
\index{Eo\+\_\+\+Callback\+\_\+\+Priority@{Eo\+\_\+\+Callback\+\_\+\+Priority}!Eo@{Eo}}
\subsubsection{\texorpdfstring{Eo\+\_\+\+Callback\+\_\+\+Priority}{Eo\_Callback\_Priority}}
{\footnotesize\ttfamily typedef short \hyperlink{group__Eo_gac7db0831a9f86713a4bd623fd3e0a46e}{Eo\+\_\+\+Callback\+\_\+\+Priority}}



Callback priority value. 

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

See \hyperlink{group__Eo__Events_gab2b15bcbd9189ba6dcdaef166eb71f36}{E\+O\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+P\+R\+I\+O\+R\+I\+T\+Y\+\_\+\+A\+F\+T\+ER}, \hyperlink{group__Eo__Events_ga479914d5806b43aee48cc425f05916d6}{E\+O\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+P\+R\+I\+O\+R\+I\+T\+Y\+\_\+\+B\+E\+F\+O\+RE} \hyperlink{group__Eo__Events_gaf5206517b6537c67a1d772ff88ce128b}{E\+O\+\_\+\+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_ga472ce3b4fd12355db81217d7594d6b56}\label{group__Eo_ga472ce3b4fd12355db81217d7594d6b56}} 
\index{Eo@{Eo}!\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type@{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type}}
\index{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type@{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type}!Eo@{Eo}}
\subsubsection{\texorpdfstring{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type}{\_Eo\_Op\_Type}}
{\footnotesize\ttfamily enum \hyperlink{group__Eo_ga472ce3b4fd12355db81217d7594d6b56}{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+ID@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+ID}!Eo@{Eo}}\index{Eo@{Eo}!E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+ID@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+ID}}}\mbox{\Hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a4d697ec91df7a0500ab176a48f01a3d8}\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a4d697ec91df7a0500ab176a48f01a3d8}} 
E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+ID&Invalid op. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR}!Eo@{Eo}}\index{Eo@{Eo}!E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR}}}\mbox{\Hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ac4e797545871cc62ab5285181f81ca30}\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ac4e797545871cc62ab5285181f81ca30}} 
E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+AR&Regular op. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+SS@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+SS}!Eo@{Eo}}\index{Eo@{Eo}!E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+SS@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+SS}}}\mbox{\Hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a0cf29bf4e1e4a4af016cae21e22a6119}\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a0cf29bf4e1e4a4af016cae21e22a6119}} 
E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+SS&Class op -\/ a class op. Like static in Java/\+C++. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+DE@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+DE}!Eo@{Eo}}\index{Eo@{Eo}!E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+DE@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+DE}}}\mbox{\Hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a59dbdfbffa9c3f19233a3a9c40d99ae3}\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a59dbdfbffa9c3f19233a3a9c40d99ae3}} 
E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+DE&Regular op override (previously defined) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+DE@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+DE}!Eo@{Eo}}\index{Eo@{Eo}!E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+DE@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+DE}}}\mbox{\Hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ab7758e017580b94cfe84e586aa9930ea}\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ab7758e017580b94cfe84e586aa9930ea}} 
E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+DE&Class op override (previously defined) \\
\hline

\end{DoxyEnumFields}


\subsection{Function Documentation}
\mbox{\Hypertarget{group__Eo_ga530a3dba7b46b40c20aeaeaab5bc322e}\label{group__Eo_ga530a3dba7b46b40c20aeaeaab5bc322e}} 
\index{Eo@{Eo}!eo\+\_\+init@{eo\+\_\+init}}
\index{eo\+\_\+init@{eo\+\_\+init}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+init()}{eo\_init()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} eo\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Init the eo subsystem. 

\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} on success.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
eo\+\_\+shutfown() 
\end{DoxySeeAlso}


References \+\_\+eo\+\_\+class\+\_\+creation\+\_\+lock, E\+I\+N\+A\+\_\+\+F\+A\+L\+SE, eina\+\_\+hash\+\_\+pointer\+\_\+new(), eina\+\_\+hash\+\_\+string\+\_\+superfast\+\_\+new(), eina\+\_\+init(), eina\+\_\+log\+\_\+domain\+\_\+register(), E\+I\+N\+A\+\_\+\+L\+O\+G\+\_\+\+E\+RR, eina\+\_\+log\+\_\+timing(), eina\+\_\+magic\+\_\+string\+\_\+static\+\_\+set(), eina\+\_\+spinlock\+\_\+new(), and E\+I\+N\+A\+\_\+\+T\+R\+UE.



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

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



Shutdown the eo subsystem. 

\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} on success.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eo_ga530a3dba7b46b40c20aeaeaab5bc322e}{eo\+\_\+init()} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_ga477fd56134445a5be7a70ca49dfec4a4}\label{group__Eo_ga477fd56134445a5be7a70ca49dfec4a4}} 
\index{Eo@{Eo}!eo\+\_\+class\+\_\+get@{eo\+\_\+class\+\_\+get}}
\index{eo\+\_\+class\+\_\+get@{eo\+\_\+class\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+class\+\_\+get()}{eo\_class\_get()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class}$\ast$ eo\+\_\+class\+\_\+get (\begin{DoxyParamCaption}\item[{const \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}
\hyperlink{group__Eo__Class_gaf311ca2f656a401d20b9f90f3947350d}{eo\+\_\+class\+\_\+name\+\_\+get()} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gaee1db0fe03226437f2179eeb1c963409}\label{group__Eo_gaee1db0fe03226437f2179eeb1c963409}} 
\index{Eo@{Eo}!eo\+\_\+data\+\_\+get@{eo\+\_\+data\+\_\+get}}
\index{eo\+\_\+data\+\_\+get@{eo\+\_\+data\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+data\+\_\+get()}{eo\_data\_get()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void$\ast$ eo\+\_\+data\+\_\+get (\begin{DoxyParamCaption}\item[{const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$}]{obj,  }\item[{const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class} $\ast$}]{klass }\end{DoxyParamCaption})}



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


\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{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000030}{Deprecated}]use eo\+\_\+data\+\_\+scope\+\_\+get or eo\+\_\+data\+\_\+ref instead. \end{DoxyRefDesc}


References eo\+\_\+data\+\_\+scope\+\_\+get().

\mbox{\Hypertarget{group__Eo_gab58151bff38dca3ce1f01568004e61cf}\label{group__Eo_gab58151bff38dca3ce1f01568004e61cf}} 
\index{Eo@{Eo}!eo\+\_\+data\+\_\+scope\+\_\+get@{eo\+\_\+data\+\_\+scope\+\_\+get}}
\index{eo\+\_\+data\+\_\+scope\+\_\+get@{eo\+\_\+data\+\_\+scope\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+data\+\_\+scope\+\_\+get()}{eo\_data\_scope\_get()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void$\ast$ eo\+\_\+data\+\_\+scope\+\_\+get (\begin{DoxyParamCaption}\item[{const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$}]{obj,  }\item[{const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+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}
\hyperlink{group__Eo_ga89005ecf791b0e4d7b516b0537e7dbbb}{eo\+\_\+data\+\_\+ref()} 

\hyperlink{group__Eo_ga18c6aca226abd9f6b4e35cc165ccb1cc}{eo\+\_\+data\+\_\+unref()} 
\end{DoxySeeAlso}


References E\+RR.



Referenced by ecore\+\_\+animator\+\_\+del(), ecore\+\_\+con\+\_\+client\+\_\+data\+\_\+get(), ecore\+\_\+con\+\_\+client\+\_\+data\+\_\+set(), ecore\+\_\+con\+\_\+client\+\_\+del(), 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\+\_\+con\+\_\+server\+\_\+data\+\_\+get(), ecore\+\_\+con\+\_\+server\+\_\+data\+\_\+set(), ecore\+\_\+con\+\_\+server\+\_\+del(), ecore\+\_\+con\+\_\+ssl\+\_\+client\+\_\+upgrade(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+cafile\+\_\+add(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+cert\+\_\+add(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+crl\+\_\+add(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+privkey\+\_\+add(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+upgrade(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+verify(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+verify\+\_\+basic(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+verify\+\_\+name\+\_\+get(), ecore\+\_\+con\+\_\+ssl\+\_\+server\+\_\+verify\+\_\+name\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+additional\+\_\+header\+\_\+add(), ecore\+\_\+con\+\_\+url\+\_\+additional\+\_\+headers\+\_\+clear(), ecore\+\_\+con\+\_\+url\+\_\+cookies\+\_\+clear(), ecore\+\_\+con\+\_\+url\+\_\+cookies\+\_\+file\+\_\+add(), ecore\+\_\+con\+\_\+url\+\_\+cookies\+\_\+ignore\+\_\+old\+\_\+session\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+cookies\+\_\+init(), ecore\+\_\+con\+\_\+url\+\_\+cookies\+\_\+jar\+\_\+file\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+cookies\+\_\+jar\+\_\+write(), ecore\+\_\+con\+\_\+url\+\_\+cookies\+\_\+session\+\_\+clear(), ecore\+\_\+con\+\_\+url\+\_\+custom\+\_\+new(), ecore\+\_\+con\+\_\+url\+\_\+data\+\_\+get(), ecore\+\_\+con\+\_\+url\+\_\+data\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+fd\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+ftp\+\_\+upload(), ecore\+\_\+con\+\_\+url\+\_\+ftp\+\_\+use\+\_\+epsv\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+http\+\_\+version\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+httpauth\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+proxy\+\_\+password\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+proxy\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+proxy\+\_\+username\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+received\+\_\+bytes\+\_\+get(), ecore\+\_\+con\+\_\+url\+\_\+response\+\_\+headers\+\_\+get(), ecore\+\_\+con\+\_\+url\+\_\+ssl\+\_\+ca\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+ssl\+\_\+verify\+\_\+peer\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+status\+\_\+code\+\_\+get(), ecore\+\_\+con\+\_\+url\+\_\+time(), ecore\+\_\+con\+\_\+url\+\_\+timeout\+\_\+set(), ecore\+\_\+con\+\_\+url\+\_\+verbose\+\_\+set(), 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\+\_\+pipe\+\_\+run(), ecore\+\_\+exe\+\_\+quit(), ecore\+\_\+exe\+\_\+send(), ecore\+\_\+exe\+\_\+signal(), ecore\+\_\+exe\+\_\+tag\+\_\+get(), ecore\+\_\+exe\+\_\+tag\+\_\+set(), ecore\+\_\+exe\+\_\+terminate(), ecore\+\_\+idle\+\_\+enterer\+\_\+del(), ecore\+\_\+idle\+\_\+exiter\+\_\+del(), ecore\+\_\+job\+\_\+del(), ecore\+\_\+poller\+\_\+del(), edje\+\_\+edit\+\_\+sound\+\_\+tones\+\_\+list\+\_\+get(), edje\+\_\+evas\+\_\+global\+\_\+perspective\+\_\+get(), edje\+\_\+perspective\+\_\+global\+\_\+set(), edje\+\_\+perspective\+\_\+set(), eo\+\_\+data\+\_\+get(), evas\+\_\+device\+\_\+add(), evas\+\_\+device\+\_\+emulation\+\_\+source\+\_\+get(), evas\+\_\+device\+\_\+list(), evas\+\_\+device\+\_\+parent\+\_\+set(), evas\+\_\+device\+\_\+pop(), evas\+\_\+device\+\_\+push(), evas\+\_\+event\+\_\+callback\+\_\+del(), evas\+\_\+event\+\_\+callback\+\_\+del\+\_\+full(), evas\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add(), evas\+\_\+event\+\_\+thaw\+\_\+eval(), evas\+\_\+font\+\_\+path\+\_\+global\+\_\+list(), evas\+\_\+map\+\_\+util\+\_\+clockwise\+\_\+get(), evas\+\_\+map\+\_\+util\+\_\+points\+\_\+populate\+\_\+from\+\_\+object(), evas\+\_\+map\+\_\+util\+\_\+points\+\_\+populate\+\_\+from\+\_\+object\+\_\+full(), evas\+\_\+object\+\_\+del(), evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+del(), evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+del\+\_\+full(), evas\+\_\+object\+\_\+event\+\_\+callback\+\_\+priority\+\_\+add(), evas\+\_\+object\+\_\+image\+\_\+add(), evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set(), evas\+\_\+object\+\_\+image\+\_\+data\+\_\+convert(), evas\+\_\+object\+\_\+image\+\_\+native\+\_\+surface\+\_\+set(), evas\+\_\+object\+\_\+image\+\_\+pixels\+\_\+import(), evas\+\_\+object\+\_\+image\+\_\+reload(), evas\+\_\+object\+\_\+ref(), evas\+\_\+object\+\_\+ref\+\_\+get(), evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+del(), evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+del\+\_\+full(), evas\+\_\+object\+\_\+smart\+\_\+callback\+\_\+priority\+\_\+add(), evas\+\_\+object\+\_\+smart\+\_\+interface\+\_\+data\+\_\+get(), evas\+\_\+object\+\_\+smart\+\_\+member\+\_\+del(), evas\+\_\+object\+\_\+textblock\+\_\+add(), evas\+\_\+object\+\_\+textblock\+\_\+clear(), evas\+\_\+object\+\_\+textblock\+\_\+text\+\_\+markup\+\_\+prepend(), evas\+\_\+object\+\_\+top\+\_\+at\+\_\+pointer\+\_\+get(), evas\+\_\+object\+\_\+unref(), evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+push(), evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+remove(), evas\+\_\+post\+\_\+event\+\_\+callback\+\_\+remove\+\_\+full(), evas\+\_\+render\+\_\+updates\+\_\+free(), evas\+\_\+smart\+\_\+legacy\+\_\+type\+\_\+register(), evas\+\_\+textblock\+\_\+cursor\+\_\+at\+\_\+format\+\_\+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\+\_\+char\+\_\+prev(), evas\+\_\+textblock\+\_\+cursor\+\_\+compare(), evas\+\_\+textblock\+\_\+cursor\+\_\+content\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+copy(), evas\+\_\+textblock\+\_\+cursor\+\_\+eol\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+append(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+is\+\_\+visible\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+item\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+next(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+prepend(), evas\+\_\+textblock\+\_\+cursor\+\_\+format\+\_\+prev(), evas\+\_\+textblock\+\_\+cursor\+\_\+free(), evas\+\_\+textblock\+\_\+cursor\+\_\+geometry\+\_\+bidi\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+is\+\_\+format(), 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\+\_\+next(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+prev(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+text\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+paragraph\+\_\+text\+\_\+length\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+pen\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+pos\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+pos\+\_\+set(), evas\+\_\+textblock\+\_\+cursor\+\_\+range\+\_\+delete(), evas\+\_\+textblock\+\_\+cursor\+\_\+range\+\_\+formats\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+range\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+range\+\_\+simple\+\_\+geometry\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+range\+\_\+text\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+text\+\_\+append(), evas\+\_\+textblock\+\_\+cursor\+\_\+text\+\_\+prepend(), evas\+\_\+textblock\+\_\+cursor\+\_\+visible\+\_\+range\+\_\+get(), evas\+\_\+textblock\+\_\+cursor\+\_\+word\+\_\+end(), evas\+\_\+textblock\+\_\+cursor\+\_\+word\+\_\+start(), evas\+\_\+textblock\+\_\+node\+\_\+format\+\_\+prev\+\_\+get(), evas\+\_\+textblock\+\_\+string\+\_\+escape\+\_\+get(), and evas\+\_\+textblock\+\_\+style\+\_\+set().

\mbox{\Hypertarget{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}\label{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}} 
\index{Eo@{Eo}!eo\+\_\+data\+\_\+xref\+\_\+internal@{eo\+\_\+data\+\_\+xref\+\_\+internal}}
\index{eo\+\_\+data\+\_\+xref\+\_\+internal@{eo\+\_\+data\+\_\+xref\+\_\+internal}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+data\+\_\+xref\+\_\+internal()}{eo\_data\_xref\_internal()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void$\ast$ eo\+\_\+data\+\_\+xref\+\_\+internal (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{int}]{line,  }\item[{const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$}]{obj,  }\item[{const \hyperlink{group__Eo_ga88d29df76a2921aa5478803156d83be5}{Eo\+\_\+\+Class} $\ast$}]{klass,  }\item[{const \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}
\hyperlink{group__Eo_ga62cdfb6c91cd5b95f612bac2c1c5fcaa}{eo\+\_\+data\+\_\+xunref\+\_\+internal()} 
\end{DoxySeeAlso}


References E\+RR.

\mbox{\Hypertarget{group__Eo_ga62cdfb6c91cd5b95f612bac2c1c5fcaa}\label{group__Eo_ga62cdfb6c91cd5b95f612bac2c1c5fcaa}} 
\index{Eo@{Eo}!eo\+\_\+data\+\_\+xunref\+\_\+internal@{eo\+\_\+data\+\_\+xunref\+\_\+internal}}
\index{eo\+\_\+data\+\_\+xunref\+\_\+internal@{eo\+\_\+data\+\_\+xunref\+\_\+internal}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+data\+\_\+xunref\+\_\+internal()}{eo\_data\_xunref\_internal()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void eo\+\_\+data\+\_\+xunref\+\_\+internal (\begin{DoxyParamCaption}\item[{const \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$}]{obj,  }\item[{void $\ast$}]{data,  }\item[{const \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}
\hyperlink{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}{eo\+\_\+data\+\_\+xref\+\_\+internal()} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Eo_gaf04e78757d6913f8d437515d0baf5c6d}\label{group__Eo_gaf04e78757d6913f8d437515d0baf5c6d}} 
\index{Eo@{Eo}!eo\+\_\+ref@{eo\+\_\+ref}}
\index{eo\+\_\+ref@{eo\+\_\+ref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+ref()}{eo\_ref()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}$\ast$ eo\+\_\+ref (\begin{DoxyParamCaption}\item[{const \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 eo\+\_\+xref and eo\+\_\+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}
\hyperlink{group__Eo_ga436137248d916d6dee56bb6ec545251e}{eo\+\_\+unref()} 

\hyperlink{group__Eo_gad5568684512a49ac83ae9af52d79d539}{eo\+\_\+ref\+\_\+get()} 
\end{DoxySeeAlso}


Referenced by evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set(), evas\+\_\+object\+\_\+ref(), and evas\+\_\+smart\+\_\+legacy\+\_\+type\+\_\+register().

\mbox{\Hypertarget{group__Eo_ga436137248d916d6dee56bb6ec545251e}\label{group__Eo_ga436137248d916d6dee56bb6ec545251e}} 
\index{Eo@{Eo}!eo\+\_\+unref@{eo\+\_\+unref}}
\index{eo\+\_\+unref@{eo\+\_\+unref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+unref()}{eo\_unref()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void eo\+\_\+unref (\begin{DoxyParamCaption}\item[{const \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}
\hyperlink{group__Eo_gaf04e78757d6913f8d437515d0baf5c6d}{eo\+\_\+ref()} 

\hyperlink{group__Eo_gad5568684512a49ac83ae9af52d79d539}{eo\+\_\+ref\+\_\+get()} 
\end{DoxySeeAlso}


Referenced by evas\+\_\+free(), evas\+\_\+object\+\_\+image\+\_\+alpha\+\_\+mask\+\_\+set(), evas\+\_\+object\+\_\+unref(), and evas\+\_\+smart\+\_\+legacy\+\_\+type\+\_\+register().

\mbox{\Hypertarget{group__Eo_gad5568684512a49ac83ae9af52d79d539}\label{group__Eo_gad5568684512a49ac83ae9af52d79d539}} 
\index{Eo@{Eo}!eo\+\_\+ref\+\_\+get@{eo\+\_\+ref\+\_\+get}}
\index{eo\+\_\+ref\+\_\+get@{eo\+\_\+ref\+\_\+get}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+ref\+\_\+get()}{eo\_ref\_get()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} int eo\+\_\+ref\+\_\+get (\begin{DoxyParamCaption}\item[{const \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}
\hyperlink{group__Eo_gaf04e78757d6913f8d437515d0baf5c6d}{eo\+\_\+ref()} 

\hyperlink{group__Eo_ga436137248d916d6dee56bb6ec545251e}{eo\+\_\+unref()} 
\end{DoxySeeAlso}


References 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\+\_\+prepend(), eina\+\_\+inlist\+\_\+remove(), E\+I\+N\+A\+\_\+\+L\+I\+K\+E\+LY, E\+I\+N\+A\+\_\+\+T\+R\+UE, E\+I\+N\+A\+\_\+\+U\+N\+L\+I\+K\+E\+LY, E\+O\+\_\+\+C\+L\+A\+S\+S\+\_\+\+T\+Y\+P\+E\+\_\+\+M\+I\+X\+IN, and E\+RR.



Referenced by evas\+\_\+free().

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



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


\begin{DoxyParams}{Parameters}
{\em obj} & the object to work on.\\
\hline
\end{DoxyParams}
Because \hyperlink{group__Eo_ga344057cd5a0dfda4229376ef2ce827d1}{eo\+\_\+del()} unrefs and reparents to N\+U\+LL, it doesn\textquotesingle{}t really delete the object.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eo_ga436137248d916d6dee56bb6ec545251e}{eo\+\_\+unref()} 

eo\+\_\+parent\+\_\+set() 
\end{DoxySeeAlso}


Referenced by ecore\+\_\+con\+\_\+eet\+\_\+server\+\_\+free(), ecore\+\_\+exe\+\_\+free(), edje\+\_\+audio\+\_\+channel\+\_\+mute\+\_\+get(), and evas\+\_\+object\+\_\+del().

\mbox{\Hypertarget{group__Eo_ga7e81f986e5dc8d971d73ad34212f3810}\label{group__Eo_ga7e81f986e5dc8d971d73ad34212f3810}} 
\index{Eo@{Eo}!eo\+\_\+xref\+\_\+internal@{eo\+\_\+xref\+\_\+internal}}
\index{eo\+\_\+xref\+\_\+internal@{eo\+\_\+xref\+\_\+internal}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+xref\+\_\+internal()}{eo\_xref\_internal()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}$\ast$ eo\+\_\+xref\+\_\+internal (\begin{DoxyParamCaption}\item[{const char $\ast$}]{file,  }\item[{int}]{line,  }\item[{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$}]{obj,  }\item[{const \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 \hyperlink{group__Eo_ga67fca40382aa902b28dd3eb5a9a70ea5}{eo\+\_\+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}
\hyperlink{group__Eo_ga554c4ed26d69bd5fbd2f6c6871e83d63}{eo\+\_\+xunref()} 
\end{DoxySeeAlso}


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

\mbox{\Hypertarget{group__Eo_ga554c4ed26d69bd5fbd2f6c6871e83d63}\label{group__Eo_ga554c4ed26d69bd5fbd2f6c6871e83d63}} 
\index{Eo@{Eo}!eo\+\_\+xunref@{eo\+\_\+xunref}}
\index{eo\+\_\+xunref@{eo\+\_\+xunref}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+xunref()}{eo\_xunref()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void eo\+\_\+xunref (\begin{DoxyParamCaption}\item[{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$}]{obj,  }\item[{const \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 \hyperlink{group__Eo_ga436137248d916d6dee56bb6ec545251e}{eo\+\_\+unref()}.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eo_ga7e81f986e5dc8d971d73ad34212f3810}{eo\+\_\+xref\+\_\+internal()} 
\end{DoxySeeAlso}


References 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_ga898921f03bd535612c442ffcfa084cf1}\label{group__Eo_ga898921f03bd535612c442ffcfa084cf1}} 
\index{Eo@{Eo}!eo\+\_\+manual\+\_\+free\+\_\+set@{eo\+\_\+manual\+\_\+free\+\_\+set}}
\index{eo\+\_\+manual\+\_\+free\+\_\+set@{eo\+\_\+manual\+\_\+free\+\_\+set}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+manual\+\_\+free\+\_\+set()}{eo\_manual\_free\_set()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void eo\+\_\+manual\+\_\+free\+\_\+set (\begin{DoxyParamCaption}\item[{\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$}]{obj,  }\item[{\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 eo\+\_\+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}
\hyperlink{group__Eo_gad885d4fb6f7f6fa7644f2f8d0d06158a}{eo\+\_\+manual\+\_\+free()} 
\end{DoxySeeAlso}


Referenced by ecore\+\_\+idle\+\_\+exiter\+\_\+add(), ecore\+\_\+idler\+\_\+add(), ecore\+\_\+job\+\_\+add(), ecore\+\_\+poller\+\_\+add(), ecore\+\_\+timer\+\_\+add(), and evas\+\_\+object\+\_\+del().

\mbox{\Hypertarget{group__Eo_gad885d4fb6f7f6fa7644f2f8d0d06158a}\label{group__Eo_gad885d4fb6f7f6fa7644f2f8d0d06158a}} 
\index{Eo@{Eo}!eo\+\_\+manual\+\_\+free@{eo\+\_\+manual\+\_\+free}}
\index{eo\+\_\+manual\+\_\+free@{eo\+\_\+manual\+\_\+free}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+manual\+\_\+free()}{eo\_manual\_free()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} eo\+\_\+manual\+\_\+free (\begin{DoxyParamCaption}\item[{\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 eo\+\_\+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}
\hyperlink{group__Eo_ga898921f03bd535612c442ffcfa084cf1}{eo\+\_\+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_gad815a5f04d144d04dfecfd2dad9f431c}\label{group__Eo_gad815a5f04d144d04dfecfd2dad9f431c}} 
\index{Eo@{Eo}!eo\+\_\+destructed\+\_\+is@{eo\+\_\+destructed\+\_\+is}}
\index{eo\+\_\+destructed\+\_\+is@{eo\+\_\+destructed\+\_\+is}!Eo@{Eo}}
\subsubsection{\texorpdfstring{eo\+\_\+destructed\+\_\+is()}{eo\_destructed\_is()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} eo\+\_\+destructed\+\_\+is (\begin{DoxyParamCaption}\item[{const \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}
\hyperlink{group__Eo_ga898921f03bd535612c442ffcfa084cf1}{eo\+\_\+manual\+\_\+free\+\_\+set()} 
\end{DoxySeeAlso}


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



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



This variable is used for locking purposes in the class\+\_\+get function defined in \hyperlink{group__Eo__Class_gacd443a75109f3e7092fae1b4d4bfee38}{E\+O\+\_\+\+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 eo\+\_\+init().

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



This variable is used for locking purposes in the class\+\_\+get function defined in \hyperlink{group__Eo__Class_gacd443a75109f3e7092fae1b4d4bfee38}{E\+O\+\_\+\+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 eo\+\_\+init().

