\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 
\hypertarget{group__Eo_ga2bf694c3a95bfdc8e23b7ca6b86e82e6}{}\#define {\bfseries E\+O\+\_\+\+C\+L\+A\+S\+S}~E\+O\+\_\+\+B\+A\+S\+E\+\_\+\+C\+L\+A\+S\+S\label{group__Eo_ga2bf694c3a95bfdc8e23b7ca6b86e82e6}

\item 
\hypertarget{group__Eo_gaa4ce018445e532ec89612472a8655a91}{}\#define \hyperlink{group__Eo_gaa4ce018445e532ec89612472a8655a91}{E\+O\+\_\+\+N\+O\+O\+P}~((\hyperlink{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}{Eo\+\_\+\+Op}) 0)\label{group__Eo_gaa4ce018445e532ec89612472a8655a91}

\begin{DoxyCompactList}\small\item\em A special \hyperlink{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}{Eo\+\_\+\+Op} meaning \char`\"{}\+No operation\char`\"{}. \end{DoxyCompactList}\item 
\hypertarget{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\+P\+S}()~\{ N\+U\+L\+L, 0\}\label{group__Eo_gade0d3295e76c3aa012e37c21f14b769a}

\item 
\hypertarget{group__Eo_ga44c44325f49e70e82a60f620a0207b86}{}\#define {\bfseries E\+O\+\_\+\+C\+L\+A\+S\+S\+\_\+\+D\+E\+S\+C\+R\+I\+P\+T\+I\+O\+N\+\_\+\+O\+P\+S}(op\+\_\+descs)~\{ op\+\_\+descs, \hyperlink{group__Eina__Types__Group_ga7c1b6f81660b4e30516169e9e7d3261c}{E\+I\+N\+A\+\_\+\+C\+\_\+\+A\+R\+R\+A\+Y\+\_\+\+L\+E\+N\+G\+T\+H}(op\+\_\+descs) \}\label{group__Eo_ga44c44325f49e70e82a60f620a0207b86}

\item 
\hypertarget{group__Eo_ga4680f012a6251da010db36fa01b30678}{}\#define {\bfseries E\+O\+\_\+\+C\+A\+L\+L\+\_\+\+C\+A\+C\+H\+E\+\_\+\+S\+I\+Z\+E}~1\label{group__Eo_ga4680f012a6251da010db36fa01b30678}

\item 
\hypertarget{group__Eo_ga013d50405d128f25d6bf815c9a969b79}{}\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+A\+L\+L}(...)~\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+\label{group__Eo_ga013d50405d128f25d6bf815c9a969b79}

\item 
\hypertarget{group__Eo_ga02ac3914f88dc2428b3d5f9dc6deb079}{}\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P\+\_\+\+F\+U\+N\+C}(Name)~((const void $\ast$) Name)\label{group__Eo_ga02ac3914f88dc2428b3d5f9dc6deb079}

\item 
\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P}(Name,  Def\+Ret)
\item 
\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y}(Name,  Ret,  Def\+Ret)
\item 
\#define {\bfseries E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y}(Name)
\item 
\#define {\bfseries E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V}(Name,  Ret,  Def\+Ret,  Arguments, ...)
\item 
\#define {\bfseries E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V}(Name,  Arguments, ...)
\item 
\hypertarget{group__Eo_ga95aa005b42e2efb162b2807577fa30bb}{}\#define {\bfseries \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+R\+Y}(a)~a\label{group__Eo_ga95aa005b42e2efb162b2807577fa30bb}

\item 
\hypertarget{group__Eo_ga0a2deefc6a55babed76a79d0fc047797}{}\#define {\bfseries E\+O\+\_\+\+O\+P\+\_\+\+F\+U\+N\+C}(\+\_\+api,  \+\_\+private)~\{ \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+R\+Y(\+\_\+api), \+\_\+private, \hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ac4e797545871cc62ab5285181f81ca30}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R} \}\label{group__Eo_ga0a2deefc6a55babed76a79d0fc047797}

\item 
\hypertarget{group__Eo_ga03bf90351e8a17d371607d5f20010f5a}{}\#define {\bfseries E\+O\+\_\+\+O\+P\+\_\+\+C\+L\+A\+S\+S\+\_\+\+F\+U\+N\+C}(\+\_\+api,  \+\_\+private)~\{ \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+R\+Y(\+\_\+api), \+\_\+private, \hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a0cf29bf4e1e4a4af016cae21e22a6119}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S} \}\label{group__Eo_ga03bf90351e8a17d371607d5f20010f5a}

\item 
\hypertarget{group__Eo_gacebb31d8970354ac9520fcd11bc92f45}{}\#define {\bfseries E\+O\+\_\+\+O\+P\+\_\+\+F\+U\+N\+C\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}(\+\_\+api,  \+\_\+private)~\{ \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+R\+Y(\+\_\+api), \+\_\+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\+D\+E} \}\label{group__Eo_gacebb31d8970354ac9520fcd11bc92f45}

\item 
\hypertarget{group__Eo_gac7b257395413c78af14555c3025478d1}{}\#define {\bfseries E\+O\+\_\+\+O\+P\+\_\+\+C\+L\+A\+S\+S\+\_\+\+F\+U\+N\+C\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}(\+\_\+api,  \+\_\+private)~\{ \+\_\+\+E\+O\+\_\+\+O\+P\+\_\+\+A\+P\+I\+\_\+\+E\+N\+T\+R\+Y(\+\_\+api), \+\_\+private, \hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ab7758e017580b94cfe84e586aa9930ea}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E} \}\label{group__Eo_gac7b257395413c78af14555c3025478d1}

\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 
\hypertarget{group__Eo_ga8ef6d27eb9eaa10de15f45e1c2271bf2}{}\#define {\bfseries eo\+\_\+do}(eoid, ...)~\+\_\+eo\+\_\+do\+\_\+common(eoid, N\+U\+L\+L, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}, \+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)\label{group__Eo_ga8ef6d27eb9eaa10de15f45e1c2271bf2}

\item 
\hypertarget{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\+U\+E}, func)\label{group__Eo_ga17fdb6af6e9cb394bf63a5a2334f0c94}

\item 
\hypertarget{group__Eo_gabe6d8dfacfad29a40d5b980c67303385}{}\#define {\bfseries eo\+\_\+do\+\_\+ret}(eoid,  ret\+\_\+tmp,  func)~\+\_\+eo\+\_\+do\+\_\+common\+\_\+ret(eoid, N\+U\+L\+L, \hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}, ret\+\_\+tmp, func)\label{group__Eo_gabe6d8dfacfad29a40d5b980c67303385}

\item 
\hypertarget{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\+U\+E}, ret\+\_\+tmp, func)\label{group__Eo_gaafa44ee04ff4152faf8da2a99060d27b}

\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\+S\+E}, \#\#\+\_\+\+\_\+\+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\+U\+E}, \#\#\+\_\+\+\_\+\+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 
\hypertarget{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{}typedef struct \+\_\+\+Eo\+\_\+\+Opaque \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo}\label{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}

\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 
\hypertarget{group__Eo_ga8448c305a64d7888d20bd8458e947593}{}typedef enum \hyperlink{group__Eo_ga472ce3b4fd12355db81217d7594d6b56}{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type} {\bfseries Eo\+\_\+\+Op\+\_\+\+Type}\label{group__Eo_ga8448c305a64d7888d20bd8458e947593}

\item 
\hypertarget{group__Eo_gab9449c37f2cf9e9dbbd06d6cf91fd75d}{}typedef struct \hyperlink{struct__Eo__Event__Description}{\+\_\+\+Eo\+\_\+\+Event\+\_\+\+Description} \hyperlink{group__Eo_gab9449c37f2cf9e9dbbd06d6cf91fd75d}{Eo\+\_\+\+Event\+\_\+\+Description2}\label{group__Eo_gab9449c37f2cf9e9dbbd06d6cf91fd75d}

\begin{DoxyCompactList}\small\item\em X\+X\+X\+: 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 
\hypertarget{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}{}typedef unsigned int \hyperlink{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}{Eo\+\_\+\+Op}\label{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}

\begin{DoxyCompactList}\small\item\em The Eo operation type id. \end{DoxyCompactList}\item 
\hypertarget{group__Eo_ga69694b43346c61d28fc242d704dee7d3}{}typedef struct \hyperlink{struct__Eo__Op__Call__Data}{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data} {\bfseries Eo\+\_\+\+Op\+\_\+\+Call\+\_\+\+Data}\label{group__Eo_ga69694b43346c61d28fc242d704dee7d3}

\item 
\hypertarget{group__Eo_ga8ad7310d9e885cd13f9dc1cfc9f81513}{}typedef struct \hyperlink{struct__Eo__Call__Cache__Index}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index} {\bfseries Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Index}\label{group__Eo_ga8ad7310d9e885cd13f9dc1cfc9f81513}

\item 
\hypertarget{group__Eo_ga8dbc5d5ea9aa8695f02c5c1a21b718d3}{}typedef struct \hyperlink{struct__Eo__Call__Cache__Entry}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry} {\bfseries Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Entry}\label{group__Eo_ga8dbc5d5ea9aa8695f02c5c1a21b718d3}

\item 
\hypertarget{group__Eo_ga1aef1724a258807c164fc121372536dd}{}typedef struct \hyperlink{struct__Eo__Call__Cache__Off}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off} {\bfseries Eo\+\_\+\+Call\+\_\+\+Cache\+\_\+\+Off}\label{group__Eo_ga1aef1724a258807c164fc121372536dd}

\item 
\hypertarget{group__Eo_gaab2eb1aaf218ea62d4fc1c0e4b06daa0}{}typedef struct \hyperlink{struct__Eo__Call__Cache}{\+\_\+\+Eo\+\_\+\+Call\+\_\+\+Cache} {\bfseries Eo\+\_\+\+Call\+\_\+\+Cache}\label{group__Eo_gaab2eb1aaf218ea62d4fc1c0e4b06daa0}

\item 
\hypertarget{group__Eo_ga4e70e342d95de3379f9ec062310727aa}{}typedef struct \hyperlink{struct__Eo__Event__Description}{\+\_\+\+Eo\+\_\+\+Event\+\_\+\+Description} \hyperlink{group__Eo_ga4e70e342d95de3379f9ec062310727aa}{Eo\+\_\+\+Event\+\_\+\+Description}\label{group__Eo_ga4e70e342d95de3379f9ec062310727aa}

\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 
\hypertarget{group__Eo_gaeb3b77f7c0931738570665c5a4843fc5}{}typedef struct \hyperlink{struct__Eo__Dbg__Info}{\+\_\+\+Eo\+\_\+\+Dbg\+\_\+\+Info} \hyperlink{group__Eo_gaeb3b77f7c0931738570665c5a4843fc5}{Eo\+\_\+\+Dbg\+\_\+\+Info}\label{group__Eo_gaeb3b77f7c0931738570665c5a4843fc5}

\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} \{ \\*
\hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a4d697ec91df7a0500ab176a48f01a3d8}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D} = -\/1, 
\\*
\hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ac4e797545871cc62ab5285181f81ca30}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R} = 0, 
\\*
\hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a0cf29bf4e1e4a4af016cae21e22a6119}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S}, 
\\*
\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\+D\+E}, 
\\*
\hyperlink{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ab7758e017580b94cfe84e586aa9930ea}{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}
 \}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \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\+P\+I} \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 
\hypertarget{group__Eo_gae91357edafba7c5a0c67c04726588f5e}{}\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eo_ga1a06287b1c079b0bf84e6427eefd637a}{Eo\+\_\+\+Op} {\bfseries \+\_\+eo\+\_\+api\+\_\+op\+\_\+id\+\_\+get} (const void $\ast$api\+\_\+func)\label{group__Eo_gae91357edafba7c5a0c67c04726588f5e}

\item 
\hypertarget{group__Eo_gad1519fb91ff24f2f9016fb68bebe1045}{}\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \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)\label{group__Eo_gad1519fb91ff24f2f9016fb68bebe1045}

\item 
\hypertarget{group__Eo_ga02d5b6be87d491a7492ad228e84d17fc}{}\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \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)\label{group__Eo_ga02d5b6be87d491a7492ad228e84d17fc}

\item 
\hypertarget{group__Eo_ga20255a04f8f5399b00bacc7c604dead4}{}\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void {\bfseries \+\_\+eo\+\_\+do\+\_\+end} (void $\ast$eo\+\_\+stack)\label{group__Eo_ga20255a04f8f5399b00bacc7c604dead4}

\item 
\hypertarget{group__Eo_ga852a08833e580a812c21a1ebc012f41f}{}\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{Eo} $\ast$ {\bfseries \+\_\+eo\+\_\+add\+\_\+end} (void $\ast$eo\+\_\+stack)\label{group__Eo_ga852a08833e580a812c21a1ebc012f41f}

\item 
\hypertarget{group__Eo_ga2085af45eceab40fbfbeb5ceea6b330e}{}\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void $\ast$ {\bfseries \+\_\+eo\+\_\+stack\+\_\+get} (void)\label{group__Eo_ga2085af45eceab40fbfbeb5ceea6b330e}

\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} 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 
\hypertarget{group__Eo_gae7a2f3558dd9e3c47204abc5ae8b09f5}{}\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \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)\label{group__Eo_gae7a2f3558dd9e3c47204abc5ae8b09f5}

\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} 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\+E\+D}
\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\+P\+I} 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\+P\+I} 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\+P\+I} 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\+P\+I} \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\+P\+I} 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\+P\+I} 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\+P\+I} 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\+L\+L. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \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\+P\+I} 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\+P\+I} 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\+P\+I} \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\+P\+I} \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\+P\+I} 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\+S\+S}. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} 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\+S\+S}. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Generic object system. 



\subsection{Macro Definition Documentation}
\hypertarget{group__Eo_ga9b0fb7e511d8ef0befb480d829e11cb1}{}\index{Eo@{Eo}!E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P}}
\index{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P}!Eo@{Eo}}
\subsubsection[{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+C\+O\+M\+M\+O\+N\+\_\+\+O\+P(
\begin{DoxyParamCaption}
\item[{}]{Name, }
\item[{}]{Def\+Ret}
\end{DoxyParamCaption}
)}\label{group__Eo_ga9b0fb7e511d8ef0befb480d829e11cb1}
{\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 (\_\_\_cache.op == \hyperlink{group__Eo_gaa4ce018445e532ec89612472a8655a91}{EO\_NOOP})                                        \(\backslash\)
       \_\_\_cache.op = \_eo\_api\_op\_id\_get(EO\_FUNC\_COMMON\_OP\_FUNC(Name));   \(\backslash\)
     if (!\_eo\_call\_resolve(#Name, &\_\_\_call, &\_\_\_cache,                  \(\backslash\)
                           \_\_FILE\_\_, \_\_LINE\_\_)) return DefRet;          \(\backslash\)
     \_Eo\_\textcolor{preprocessor}{##Name##\_func \_func\_ = (\_Eo\_##Name##\_func) \_\_\_call.func;       \(\backslash\)}
\end{DoxyCode}
\hypertarget{group__Eo_ga567b38d37bb14fa93e544531ea9726ea}{}\index{Eo@{Eo}!E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y}}
\index{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y}!Eo@{Eo}}
\subsubsection[{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y(
\begin{DoxyParamCaption}
\item[{}]{Name, }
\item[{}]{Ret, }
\item[{}]{Def\+Ret}
\end{DoxyParamCaption}
)}\label{group__Eo_ga567b38d37bb14fa93e544531ea9726ea}
{\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}
\hypertarget{group__Eo_gac1214b5430084987396165a274919fee}{}\index{Eo@{Eo}!E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y@{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y}}
\index{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y@{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y}!Eo@{Eo}}
\subsubsection[{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y(
\begin{DoxyParamCaption}
\item[{}]{Name}
\end{DoxyParamCaption}
)}\label{group__Eo_gac1214b5430084987396165a274919fee}
{\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}
\hypertarget{group__Eo_ga01fb529db759396c86c9aa1fb71d5c68}{}\index{Eo@{Eo}!E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V}}
\index{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V@{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V}!Eo@{Eo}}
\subsubsection[{E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+O\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V(
\begin{DoxyParamCaption}
\item[{}]{Name, }
\item[{}]{Ret, }
\item[{}]{Def\+Ret, }
\item[{}]{Arguments, }
\item[{}]{...}
\end{DoxyParamCaption}
)}\label{group__Eo_ga01fb529db759396c86c9aa1fb71d5c68}
{\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}
\hypertarget{group__Eo_ga8f538747358cdc39c118079c1aa75862}{}\index{Eo@{Eo}!E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V@{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V}}
\index{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V@{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V}!Eo@{Eo}}
\subsubsection[{E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V}]{\setlength{\rightskip}{0pt plus 5cm}\#define E\+O\+\_\+\+V\+O\+I\+D\+\_\+\+F\+U\+N\+C\+\_\+\+B\+O\+D\+Y\+V(
\begin{DoxyParamCaption}
\item[{}]{Name, }
\item[{}]{Arguments, }
\item[{}]{...}
\end{DoxyParamCaption}
)}\label{group__Eo_ga8f538747358cdc39c118079c1aa75862}
{\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}
\hypertarget{group__Eo_gaf8fb6f4353ba41001b10a014d6c9f1f5}{}\index{Eo@{Eo}!\+\_\+eo\+\_\+do\+\_\+common@{\+\_\+eo\+\_\+do\+\_\+common}}
\index{\+\_\+eo\+\_\+do\+\_\+common@{\+\_\+eo\+\_\+do\+\_\+common}!Eo@{Eo}}
\subsubsection[{\+\_\+eo\+\_\+do\+\_\+common}]{\setlength{\rightskip}{0pt plus 5cm}\#define \+\_\+eo\+\_\+do\+\_\+common(
\begin{DoxyParamCaption}
\item[{}]{eoid, }
\item[{}]{clsid, }
\item[{}]{is\+\_\+super, }
\item[{}]{...}
\end{DoxyParamCaption}
)}\label{group__Eo_gaf8fb6f4353ba41001b10a014d6c9f1f5}
{\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}
\hypertarget{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[{\+\_\+eo\+\_\+do\+\_\+common\+\_\+ret}]{\setlength{\rightskip}{0pt plus 5cm}\#define \+\_\+eo\+\_\+do\+\_\+common\+\_\+ret(
\begin{DoxyParamCaption}
\item[{}]{eoid, }
\item[{}]{clsid, }
\item[{}]{is\+\_\+super, }
\item[{}]{ret\+\_\+tmp, }
\item[{}]{func}
\end{DoxyParamCaption}
)}\label{group__Eo_ga2a02dc309889fd9690050f9f24c28cc1}
{\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}
\hypertarget{group__Eo_ga182f5cde2bc0b6e31fe5d6cacf2a09f3}{}\index{Eo@{Eo}!eo\+\_\+do\+\_\+part@{eo\+\_\+do\+\_\+part}}
\index{eo\+\_\+do\+\_\+part@{eo\+\_\+do\+\_\+part}!Eo@{Eo}}
\subsubsection[{eo\+\_\+do\+\_\+part}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+do\+\_\+part(
\begin{DoxyParamCaption}
\item[{}]{eoid, }
\item[{}]{part\+\_\+func, }
\item[{}]{...}
\end{DoxyParamCaption}
)}\label{group__Eo_ga182f5cde2bc0b6e31fe5d6cacf2a09f3}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{ \hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{\(\backslash\)}
\hyperlink{group__Eo_ga9f3010a50b61a892d41f4ec2bda73f4c}{       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}
\hypertarget{group__Eo_ga0f2f5c3431264a01ee4145019b3456e9}{}\index{Eo@{Eo}!\+\_\+eo\+\_\+add\+\_\+common@{\+\_\+eo\+\_\+add\+\_\+common}}
\index{\+\_\+eo\+\_\+add\+\_\+common@{\+\_\+eo\+\_\+add\+\_\+common}!Eo@{Eo}}
\subsubsection[{\+\_\+eo\+\_\+add\+\_\+common}]{\setlength{\rightskip}{0pt plus 5cm}\#define \+\_\+eo\+\_\+add\+\_\+common(
\begin{DoxyParamCaption}
\item[{}]{klass, }
\item[{}]{parent, }
\item[{}]{is\+\_\+ref, }
\item[{}]{...}
\end{DoxyParamCaption}
)}\label{group__Eo_ga0f2f5c3431264a01ee4145019b3456e9}
{\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}
\hypertarget{group__Eo_ga5a832ab70d280281cca80fc6d4f29741}{}\index{Eo@{Eo}!eo\+\_\+add@{eo\+\_\+add}}
\index{eo\+\_\+add@{eo\+\_\+add}!Eo@{Eo}}
\subsubsection[{eo\+\_\+add}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+add(
\begin{DoxyParamCaption}
\item[{}]{klass, }
\item[{}]{parent, }
\item[{}]{...}
\end{DoxyParamCaption}
)~\+\_\+eo\+\_\+add\+\_\+common(klass, parent, {\bf E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E}, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\label{group__Eo_ga5a832ab70d280281cca80fc6d4f29741}


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\+L\+L 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\+L\+L 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(), edje\+\_\+edit\+\_\+object\+\_\+add(), emotion\+\_\+object\+\_\+add(), evas\+\_\+new(), evas\+\_\+object\+\_\+box\+\_\+add(), evas\+\_\+object\+\_\+grid\+\_\+add(), evas\+\_\+object\+\_\+image\+\_\+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().

\hypertarget{group__Eo_ga93605d246a13f5dfdd68b4fcbd898538}{}\index{Eo@{Eo}!eo\+\_\+add\+\_\+ref@{eo\+\_\+add\+\_\+ref}}
\index{eo\+\_\+add\+\_\+ref@{eo\+\_\+add\+\_\+ref}!Eo@{Eo}}
\subsubsection[{eo\+\_\+add\+\_\+ref}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+add\+\_\+ref(
\begin{DoxyParamCaption}
\item[{}]{klass, }
\item[{}]{parent, }
\item[{}]{...}
\end{DoxyParamCaption}
)~\+\_\+eo\+\_\+add\+\_\+common(klass, parent, {\bf E\+I\+N\+A\+\_\+\+T\+R\+U\+E}, \#\#\+\_\+\+\_\+\+V\+A\+\_\+\+A\+R\+G\+S\+\_\+\+\_\+)}\label{group__Eo_ga93605d246a13f5dfdd68b4fcbd898538}


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\+L\+L otherwise. 
\end{DoxyReturn}


Referenced by efl\+::eo\+::inherit$<$ D, E $>$\+::inherit().

\hypertarget{group__Eo_ga1e85aff00c69f0ec5b835b409c557f3e}{}\index{Eo@{Eo}!eo\+\_\+data\+\_\+xref@{eo\+\_\+data\+\_\+xref}}
\index{eo\+\_\+data\+\_\+xref@{eo\+\_\+data\+\_\+xref}!Eo@{Eo}}
\subsubsection[{eo\+\_\+data\+\_\+xref}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+data\+\_\+xref(
\begin{DoxyParamCaption}
\item[{}]{obj, }
\item[{}]{klass, }
\item[{}]{ref\+\_\+obj}
\end{DoxyParamCaption}
)~{\bf eo\+\_\+data\+\_\+xref\+\_\+internal}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, klass, ref\+\_\+obj)}\label{group__Eo_ga1e85aff00c69f0ec5b835b409c557f3e}


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

Convenience macro around \hyperlink{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}{eo\+\_\+data\+\_\+xref\+\_\+internal()} \hypertarget{group__Eo_ga89005ecf791b0e4d7b516b0537e7dbbb}{}\index{Eo@{Eo}!eo\+\_\+data\+\_\+ref@{eo\+\_\+data\+\_\+ref}}
\index{eo\+\_\+data\+\_\+ref@{eo\+\_\+data\+\_\+ref}!Eo@{Eo}}
\subsubsection[{eo\+\_\+data\+\_\+ref}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+data\+\_\+ref(
\begin{DoxyParamCaption}
\item[{}]{obj, }
\item[{}]{klass}
\end{DoxyParamCaption}
)~{\bf eo\+\_\+data\+\_\+xref\+\_\+internal}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, klass, (const {\bf Eo} $\ast$)obj)}\label{group__Eo_ga89005ecf791b0e4d7b516b0537e7dbbb}


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 evas\+\_\+gl\+\_\+new().

\hypertarget{group__Eo_ga71648d4468c17c3e789e0ae7beca1e29}{}\index{Eo@{Eo}!eo\+\_\+data\+\_\+xunref@{eo\+\_\+data\+\_\+xunref}}
\index{eo\+\_\+data\+\_\+xunref@{eo\+\_\+data\+\_\+xunref}!Eo@{Eo}}
\subsubsection[{eo\+\_\+data\+\_\+xunref}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+data\+\_\+xunref(
\begin{DoxyParamCaption}
\item[{}]{obj, }
\item[{}]{data, }
\item[{}]{ref\+\_\+obj}
\end{DoxyParamCaption}
)~{\bf eo\+\_\+data\+\_\+xunref\+\_\+internal}(obj, data, ref\+\_\+obj)}\label{group__Eo_ga71648d4468c17c3e789e0ae7beca1e29}


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}
\hypertarget{group__Eo_ga18c6aca226abd9f6b4e35cc165ccb1cc}{}\index{Eo@{Eo}!eo\+\_\+data\+\_\+unref@{eo\+\_\+data\+\_\+unref}}
\index{eo\+\_\+data\+\_\+unref@{eo\+\_\+data\+\_\+unref}!Eo@{Eo}}
\subsubsection[{eo\+\_\+data\+\_\+unref}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+data\+\_\+unref(
\begin{DoxyParamCaption}
\item[{}]{obj, }
\item[{}]{data}
\end{DoxyParamCaption}
)~{\bf eo\+\_\+data\+\_\+xunref\+\_\+internal}(obj, data, obj)}\label{group__Eo_ga18c6aca226abd9f6b4e35cc165ccb1cc}


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().

\hypertarget{group__Eo_ga67fca40382aa902b28dd3eb5a9a70ea5}{}\index{Eo@{Eo}!eo\+\_\+xref@{eo\+\_\+xref}}
\index{eo\+\_\+xref@{eo\+\_\+xref}!Eo@{Eo}}
\subsubsection[{eo\+\_\+xref}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+xref(
\begin{DoxyParamCaption}
\item[{}]{obj, }
\item[{}]{ref\+\_\+obj}
\end{DoxyParamCaption}
)~{\bf eo\+\_\+xref\+\_\+internal}(\+\_\+\+\_\+\+F\+I\+L\+E\+\_\+\+\_\+, \+\_\+\+\_\+\+L\+I\+N\+E\+\_\+\+\_\+, obj, ref\+\_\+obj)}\label{group__Eo_ga67fca40382aa902b28dd3eb5a9a70ea5}


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}
\hypertarget{group__Eo_ga88d29df76a2921aa5478803156d83be5}{}\index{Eo@{Eo}!Eo\+\_\+\+Class@{Eo\+\_\+\+Class}}
\index{Eo\+\_\+\+Class@{Eo\+\_\+\+Class}!Eo@{Eo}}
\subsubsection[{Eo\+\_\+\+Class}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Eo\+\_\+\+Class}}\label{group__Eo_ga88d29df76a2921aa5478803156d83be5}


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

\begin{DoxyRefDesc}{Deprecated}
\item[\hyperlink{deprecated__deprecated000029}{Deprecated}]\end{DoxyRefDesc}
\hypertarget{group__Eo_ga874409d9231a1064a52a07009a184bd4}{}\index{Eo@{Eo}!Eo\+\_\+\+Event\+\_\+\+Cb@{Eo\+\_\+\+Event\+\_\+\+Cb}}
\index{Eo\+\_\+\+Event\+\_\+\+Cb@{Eo\+\_\+\+Event\+\_\+\+Cb}!Eo@{Eo}}
\subsubsection[{Eo\+\_\+\+Event\+\_\+\+Cb}]{\setlength{\rightskip}{0pt plus 5cm}Eo\+\_\+\+Event\+\_\+\+Cb}\label{group__Eo_ga874409d9231a1064a52a07009a184bd4}


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\+O\+P} 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\+U\+E} to continue. 
\end{DoxyReturn}
\hypertarget{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[{Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}]{\setlength{\rightskip}{0pt plus 5cm}typedef struct {\bf \+\_\+\+Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}  {\bf Eo\+\_\+\+Callback\+\_\+\+Array\+\_\+\+Item}}\label{group__Eo_ga9c6f106377afb7cdba1fe8d17f71a5f7}


An item in an array of callback desc/func. 

See also \hyperlink{group__Eo__Events_ga7cc24c65cb94397dbeb173068d5918b2}{eo\+\_\+event\+\_\+callback\+\_\+array\+\_\+add}. \hypertarget{group__Eo_gac7db0831a9f86713a4bd623fd3e0a46e}{}\index{Eo@{Eo}!Eo\+\_\+\+Callback\+\_\+\+Priority@{Eo\+\_\+\+Callback\+\_\+\+Priority}}
\index{Eo\+\_\+\+Callback\+\_\+\+Priority@{Eo\+\_\+\+Callback\+\_\+\+Priority}!Eo@{Eo}}
\subsubsection[{Eo\+\_\+\+Callback\+\_\+\+Priority}]{\setlength{\rightskip}{0pt plus 5cm}typedef short {\bf Eo\+\_\+\+Callback\+\_\+\+Priority}}\label{group__Eo_gac7db0831a9f86713a4bd623fd3e0a46e}


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\+E\+R}, \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\+R\+E} \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\+L\+T} 

\subsection{Enumeration Type Documentation}
\hypertarget{group__Eo_ga472ce3b4fd12355db81217d7594d6b56}{}\index{Eo@{Eo}!\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type@{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type}}
\index{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type@{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type}!Eo@{Eo}}
\subsubsection[{\+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \+\_\+\+Eo\+\_\+\+Op\+\_\+\+Type}}\label{group__Eo_ga472ce3b4fd12355db81217d7594d6b56}
\begin{Desc}
\item[Enumerator]\par
\begin{description}
\index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D}!Eo@{Eo}}\index{Eo@{Eo}!E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D}}\item[{\em 
\hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a4d697ec91df7a0500ab176a48f01a3d8}{}E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+I\+N\+V\+A\+L\+I\+D\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a4d697ec91df7a0500ab176a48f01a3d8}
}]Invalid op. \index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R}!Eo@{Eo}}\index{Eo@{Eo}!E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R}}\item[{\em 
\hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ac4e797545871cc62ab5285181f81ca30}{}E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ac4e797545871cc62ab5285181f81ca30}
}]Regular op. \index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S}!Eo@{Eo}}\index{Eo@{Eo}!E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S}}\item[{\em 
\hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a0cf29bf4e1e4a4af016cae21e22a6119}{}E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a0cf29bf4e1e4a4af016cae21e22a6119}
}]Class op -\/ a class op. Like static in Java/\+C++. \index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}!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\+D\+E@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}}\item[{\em 
\hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a59dbdfbffa9c3f19233a3a9c40d99ae3}{}E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+R\+E\+G\+U\+L\+A\+R\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56a59dbdfbffa9c3f19233a3a9c40d99ae3}
}]Regular op override (previously defined) \index{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}!Eo@{Eo}}\index{Eo@{Eo}!E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E@{E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E}}\item[{\em 
\hypertarget{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ab7758e017580b94cfe84e586aa9930ea}{}E\+O\+\_\+\+O\+P\+\_\+\+T\+Y\+P\+E\+\_\+\+C\+L\+A\+S\+S\+\_\+\+O\+V\+E\+R\+R\+I\+D\+E\label{group__Eo_gga472ce3b4fd12355db81217d7594d6b56ab7758e017580b94cfe84e586aa9930ea}
}]Class op override (previously defined) \end{description}
\end{Desc}


\subsection{Function Documentation}
\hypertarget{group__Eo_ga530a3dba7b46b40c20aeaeaab5bc322e}{}\index{Eo@{Eo}!eo\+\_\+init@{eo\+\_\+init}}
\index{eo\+\_\+init@{eo\+\_\+init}!Eo@{Eo}}
\subsubsection[{eo\+\_\+init(void)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} eo\+\_\+init (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__Eo_ga530a3dba7b46b40c20aeaeaab5bc322e}


Init the eo subsystem. 

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


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



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

\hypertarget{group__Eo_ga46ddce2ed4814e951e824a7b213729dc}{}\index{Eo@{Eo}!eo\+\_\+shutdown@{eo\+\_\+shutdown}}
\index{eo\+\_\+shutdown@{eo\+\_\+shutdown}!Eo@{Eo}}
\subsubsection[{eo\+\_\+shutdown(void)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} eo\+\_\+shutdown (
\begin{DoxyParamCaption}
\item[{void}]{}
\end{DoxyParamCaption}
)}\label{group__Eo_ga46ddce2ed4814e951e824a7b213729dc}


Shutdown the eo subsystem. 

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


References \+\_\+eo\+\_\+class\+\_\+creation\+\_\+lock, eina\+\_\+hash\+\_\+free(), eina\+\_\+log\+\_\+domain\+\_\+unregister(), E\+I\+N\+A\+\_\+\+L\+O\+G\+\_\+\+S\+T\+A\+T\+E\+\_\+\+S\+H\+U\+T\+D\+O\+W\+N, eina\+\_\+log\+\_\+timing(), eina\+\_\+shutdown(), eina\+\_\+spinlock\+\_\+free(), eina\+\_\+tls\+\_\+free(), and E\+I\+N\+A\+\_\+\+T\+R\+U\+E.



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

\hypertarget{group__Eo_ga477fd56134445a5be7a70ca49dfec4a4}{}\index{Eo@{Eo}!eo\+\_\+class\+\_\+get@{eo\+\_\+class\+\_\+get}}
\index{eo\+\_\+class\+\_\+get@{eo\+\_\+class\+\_\+get}!Eo@{Eo}}
\subsubsection[{eo\+\_\+class\+\_\+get(const Eo $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} const {\bf Eo\+\_\+\+Class}$\ast$ eo\+\_\+class\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Eo_ga477fd56134445a5be7a70ca49dfec4a4}


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}
\hypertarget{group__Eo_gaee1db0fe03226437f2179eeb1c963409}{}\index{Eo@{Eo}!eo\+\_\+data\+\_\+get@{eo\+\_\+data\+\_\+get}}
\index{eo\+\_\+data\+\_\+get@{eo\+\_\+data\+\_\+get}!Eo@{Eo}}
\subsubsection[{eo\+\_\+data\+\_\+get(const Eo $\ast$obj, const Eo\+\_\+\+Class $\ast$klass) E\+I\+N\+A\+\_\+\+D\+E\+P\+R\+E\+C\+A\+T\+E\+D}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void$\ast$ eo\+\_\+data\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj, }
\item[{const {\bf Eo\+\_\+\+Class} $\ast$}]{klass}
\end{DoxyParamCaption}
)}\label{group__Eo_gaee1db0fe03226437f2179eeb1c963409}


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().

\hypertarget{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[{eo\+\_\+data\+\_\+scope\+\_\+get(const Eo $\ast$obj, const Eo\+\_\+\+Class $\ast$klass)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void$\ast$ eo\+\_\+data\+\_\+scope\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj, }
\item[{const {\bf Eo\+\_\+\+Class} $\ast$}]{klass}
\end{DoxyParamCaption}
)}\label{group__Eo_gab58151bff38dca3ce1f01568004e61cf}


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



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\+\_\+shutdown(), 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\+\_\+job\+\_\+del(), ecore\+\_\+poller\+\_\+del(), edje\+\_\+language\+\_\+set(), edje\+\_\+perspective\+\_\+global\+\_\+set(), edje\+\_\+perspective\+\_\+set(), eo\+\_\+data\+\_\+get(), evas\+\_\+device\+\_\+add(), 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\+\_\+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\+\_\+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\+\_\+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(), and evas\+\_\+textblock\+\_\+style\+\_\+set().

\hypertarget{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[{eo\+\_\+data\+\_\+xref\+\_\+internal(const char $\ast$file, int line, const Eo $\ast$obj, const Eo\+\_\+\+Class $\ast$klass, const Eo $\ast$ref\+\_\+obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void$\ast$ eo\+\_\+data\+\_\+xref\+\_\+internal (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file, }
\item[{int}]{line, }
\item[{const {\bf Eo} $\ast$}]{obj, }
\item[{const {\bf Eo\+\_\+\+Class} $\ast$}]{klass, }
\item[{const {\bf Eo} $\ast$}]{ref\+\_\+obj}
\end{DoxyParamCaption}
)}\label{group__Eo_ga15f990bde472472ddca13ad5a099f9fc}


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

\hypertarget{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[{eo\+\_\+data\+\_\+xunref\+\_\+internal(const Eo $\ast$obj, void $\ast$data, const Eo $\ast$ref\+\_\+obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eo\+\_\+data\+\_\+xunref\+\_\+internal (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj, }
\item[{void $\ast$}]{data, }
\item[{const {\bf Eo} $\ast$}]{ref\+\_\+obj}
\end{DoxyParamCaption}
)}\label{group__Eo_ga62cdfb6c91cd5b95f612bac2c1c5fcaa}


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}
\hypertarget{group__Eo_gaf04e78757d6913f8d437515d0baf5c6d}{}\index{Eo@{Eo}!eo\+\_\+ref@{eo\+\_\+ref}}
\index{eo\+\_\+ref@{eo\+\_\+ref}!Eo@{Eo}}
\subsubsection[{eo\+\_\+ref(const Eo $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eo}$\ast$ eo\+\_\+ref (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Eo_gaf04e78757d6913f8d437515d0baf5c6d}


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\+\_\+ref(), and efl\+::eina\+::accessor$<$ T, typename std\+::enable\+\_\+if$<$ std\+::is\+\_\+base\+\_\+of$<$\+::efl\+::eo\+::concrete, T $>$\+::value, T $>$\+::type $>$\+::operator\mbox{[}$\,$\mbox{]}().

\hypertarget{group__Eo_ga436137248d916d6dee56bb6ec545251e}{}\index{Eo@{Eo}!eo\+\_\+unref@{eo\+\_\+unref}}
\index{eo\+\_\+unref@{eo\+\_\+unref}!Eo@{Eo}}
\subsubsection[{eo\+\_\+unref(const Eo $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eo\+\_\+unref (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Eo_ga436137248d916d6dee56bb6ec545251e}


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 ecore\+\_\+shutdown(), eo\+\_\+del(), evas\+\_\+free(), and evas\+\_\+object\+\_\+unref().

\hypertarget{group__Eo_gad5568684512a49ac83ae9af52d79d539}{}\index{Eo@{Eo}!eo\+\_\+ref\+\_\+get@{eo\+\_\+ref\+\_\+get}}
\index{eo\+\_\+ref\+\_\+get@{eo\+\_\+ref\+\_\+get}!Eo@{Eo}}
\subsubsection[{eo\+\_\+ref\+\_\+get(const Eo $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} int eo\+\_\+ref\+\_\+get (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Eo_gad5568684512a49ac83ae9af52d79d539}


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}
\hypertarget{group__Eo_ga344057cd5a0dfda4229376ef2ce827d1}{}\index{Eo@{Eo}!eo\+\_\+del@{eo\+\_\+del}}
\index{eo\+\_\+del@{eo\+\_\+del}!Eo@{Eo}}
\subsubsection[{eo\+\_\+del(const Eo $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eo\+\_\+del (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Eo_ga344057cd5a0dfda4229376ef2ce827d1}


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


\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\+L\+L, it doesn\textquotesingle{}t really delete the object.

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

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


References eo\+\_\+unref().



Referenced by ecore\+\_\+con\+\_\+eet\+\_\+server\+\_\+free(), ecore\+\_\+con\+\_\+url\+\_\+free(), ecore\+\_\+exe\+\_\+free(), and evas\+\_\+object\+\_\+del().

\hypertarget{group__Eo_ga7e81f986e5dc8d971d73ad34212f3810}{}\index{Eo@{Eo}!eo\+\_\+xref\+\_\+internal@{eo\+\_\+xref\+\_\+internal}}
\index{eo\+\_\+xref\+\_\+internal@{eo\+\_\+xref\+\_\+internal}!Eo@{Eo}}
\subsubsection[{eo\+\_\+xref\+\_\+internal(const char $\ast$file, int line, Eo $\ast$obj, const Eo $\ast$ref\+\_\+obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eo}$\ast$ eo\+\_\+xref\+\_\+internal (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{file, }
\item[{int}]{line, }
\item[{{\bf Eo} $\ast$}]{obj, }
\item[{const {\bf Eo} $\ast$}]{ref\+\_\+obj}
\end{DoxyParamCaption}
)}\label{group__Eo_ga7e81f986e5dc8d971d73ad34212f3810}


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\+E\+T, and eina\+\_\+inlist\+\_\+prepend().

\hypertarget{group__Eo_ga554c4ed26d69bd5fbd2f6c6871e83d63}{}\index{Eo@{Eo}!eo\+\_\+xunref@{eo\+\_\+xunref}}
\index{eo\+\_\+xunref@{eo\+\_\+xunref}!Eo@{Eo}}
\subsubsection[{eo\+\_\+xunref(\+Eo $\ast$obj, const Eo $\ast$ref\+\_\+obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eo\+\_\+xunref (
\begin{DoxyParamCaption}
\item[{{\bf Eo} $\ast$}]{obj, }
\item[{const {\bf Eo} $\ast$}]{ref\+\_\+obj}
\end{DoxyParamCaption}
)}\label{group__Eo_ga554c4ed26d69bd5fbd2f6c6871e83d63}


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\+C\+H, E\+I\+N\+A\+\_\+\+I\+N\+L\+I\+S\+T\+\_\+\+G\+E\+T, eina\+\_\+inlist\+\_\+remove(), and E\+R\+R.

\hypertarget{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[{eo\+\_\+manual\+\_\+free\+\_\+set(\+Eo $\ast$obj, Eina\+\_\+\+Bool manual\+\_\+free)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void eo\+\_\+manual\+\_\+free\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Eo} $\ast$}]{obj, }
\item[{{\bf Eina\+\_\+\+Bool}}]{manual\+\_\+free}
\end{DoxyParamCaption}
)}\label{group__Eo_ga898921f03bd535612c442ffcfa084cf1}


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\+U\+E) or automatic (E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E).\\
\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\+\_\+poller\+\_\+del().

\hypertarget{group__Eo_gad885d4fb6f7f6fa7644f2f8d0d06158a}{}\index{Eo@{Eo}!eo\+\_\+manual\+\_\+free@{eo\+\_\+manual\+\_\+free}}
\index{eo\+\_\+manual\+\_\+free@{eo\+\_\+manual\+\_\+free}!Eo@{Eo}}
\subsubsection[{eo\+\_\+manual\+\_\+free(\+Eo $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} eo\+\_\+manual\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Eo} $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Eo_gad885d4fb6f7f6fa7644f2f8d0d06158a}


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\+U\+E. 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\+U\+E or the number of refs is not 0. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
E\+I\+N\+A\+\_\+\+T\+R\+U\+E if successfully freed. E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E 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\+S\+E, E\+I\+N\+A\+\_\+\+T\+R\+U\+E, and E\+R\+R.



Referenced by ecore\+\_\+poller\+\_\+del().

\hypertarget{group__Eo_gad815a5f04d144d04dfecfd2dad9f431c}{}\index{Eo@{Eo}!eo\+\_\+destructed\+\_\+is@{eo\+\_\+destructed\+\_\+is}}
\index{eo\+\_\+destructed\+\_\+is@{eo\+\_\+destructed\+\_\+is}!Eo@{Eo}}
\subsubsection[{eo\+\_\+destructed\+\_\+is(const Eo $\ast$obj)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} eo\+\_\+destructed\+\_\+is (
\begin{DoxyParamCaption}
\item[{const {\bf Eo} $\ast$}]{obj}
\end{DoxyParamCaption}
)}\label{group__Eo_gad815a5f04d144d04dfecfd2dad9f431c}


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\+S\+E.



Referenced by ecore\+\_\+poller\+\_\+del().



\subsection{Variable Documentation}
\hypertarget{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[{\+\_\+eo\+\_\+class\+\_\+creation\+\_\+lock}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} Eina\+\_\+\+Spinlock \+\_\+eo\+\_\+class\+\_\+creation\+\_\+lock}\label{group__Eo_gaf20d0fd14d4342416d3591c211a9e81f}


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\+S\+S}. 

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\+\_\+class\+\_\+new(), eo\+\_\+init(), and eo\+\_\+shutdown().

\hypertarget{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[{\+\_\+eo\+\_\+class\+\_\+creation\+\_\+lock}]{\setlength{\rightskip}{0pt plus 5cm}\+\_\+eo\+\_\+class\+\_\+creation\+\_\+lock}\label{group__Eo_ga44b5710f56e35a78cbaf94bb5cd1a870}


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\+S\+S}. 

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\+\_\+class\+\_\+new(), eo\+\_\+init(), and eo\+\_\+shutdown().

