\doxysubsubsection{References counting}
\hypertarget{group__Eina__Refcount}{}\label{group__Eina__Refcount}\index{References counting@{References counting}}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{group__Eina__Refcount_gaf38d0c3392258429d9634dbea7c51648}\label{group__Eina__Refcount_gaf38d0c3392258429d9634dbea7c51648} 
\#define {\bfseries EINA\+\_\+\+REFCOUNT}~\mbox{\hyperlink{group__Eina__Refcount_ga76bb3e3bbc4f31bcd28fd4833e388dcd}{Eina\+\_\+\+Refcount}} \+\_\+\+\_\+refcount
\begin{DoxyCompactList}\small\item\em Used for declaring a reference counting member in a struct. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Refcount_gae7cbb849fe94000305dd344b98344a95}{EINA\+\_\+\+REFCOUNT\+\_\+\+INIT}}(Variable)
\begin{DoxyCompactList}\small\item\em Used just after allocating a object. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Refcount_ga1303550c19416335a5e4d012f3f5ded0}{EINA\+\_\+\+REFCOUNT\+\_\+\+REF}}(Variable)
\begin{DoxyCompactList}\small\item\em Used when using referring to an object one more time. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Refcount_ga85c005aaee53141665fb5ea88e10f5e0}{EINA\+\_\+\+REFCOUNT\+\_\+\+UNREF}}(Variable)
\begin{DoxyCompactList}\small\item\em Used when removing a reference to an object. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group__Eina__Refcount_ga3987f48cd01a1c3d17f6b59d65d22a33}{EINA\+\_\+\+REFCOUNT\+\_\+\+GET}}(Variable)
\begin{DoxyCompactList}\small\item\em Get refcounting value. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{group__Eina__Refcount_ga76bb3e3bbc4f31bcd28fd4833e388dcd}\label{group__Eina__Refcount_ga76bb3e3bbc4f31bcd28fd4833e388dcd} 
typedef int {\bfseries Eina\+\_\+\+Refcount}
\begin{DoxyCompactList}\small\item\em Inlined references counting type. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsubsection{Detailed Description}


Small macro that simplify references counting.

References counting is not a difficult task, but you must handle it correctly every where, and that the issue. This set of macro do provide helper that will force to use the correct code in most case and reduce the bug likeliness. Of course this without affecting speed ! 

\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group__Eina__Refcount_gae7cbb849fe94000305dd344b98344a95}\index{References counting@{References counting}!EINA\_REFCOUNT\_INIT@{EINA\_REFCOUNT\_INIT}}
\index{EINA\_REFCOUNT\_INIT@{EINA\_REFCOUNT\_INIT}!References counting@{References counting}}
\doxysubsubsubsubsection{\texorpdfstring{EINA\_REFCOUNT\_INIT}{EINA\_REFCOUNT\_INIT}}
{\footnotesize\ttfamily \label{group__Eina__Refcount_gae7cbb849fe94000305dd344b98344a95} 
\#define EINA\+\_\+\+REFCOUNT\+\_\+\+INIT(\begin{DoxyParamCaption}\item[{}]{Variable}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(Variable)-\/>\_\_refcount\ =\ 1}

\end{DoxyCode}


Used just after allocating a object. 



Referenced by \mbox{\hyperlink{group__Eeze__Net_ga334024e69b8e278ce812f1efac2cd261}{eeze\+\_\+net\+\_\+new()}}, \mbox{\hyperlink{group__Eio__Monitor_ga61c44160641b291706fe24b635545d70}{eio\+\_\+monitor\+\_\+stringshared\+\_\+add()}}, and \mbox{\hyperlink{group__Ethumb__Client__Basics_ga6c27fce30e83988810d432a6d1751a2c}{ethumb\+\_\+client\+\_\+connect()}}.

\Hypertarget{group__Eina__Refcount_ga1303550c19416335a5e4d012f3f5ded0}\index{References counting@{References counting}!EINA\_REFCOUNT\_REF@{EINA\_REFCOUNT\_REF}}
\index{EINA\_REFCOUNT\_REF@{EINA\_REFCOUNT\_REF}!References counting@{References counting}}
\doxysubsubsubsubsection{\texorpdfstring{EINA\_REFCOUNT\_REF}{EINA\_REFCOUNT\_REF}}
{\footnotesize\ttfamily \label{group__Eina__Refcount_ga1303550c19416335a5e4d012f3f5ded0} 
\#define EINA\+\_\+\+REFCOUNT\+\_\+\+REF(\begin{DoxyParamCaption}\item[{}]{Variable}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(Variable)-\/>\_\_refcount++}

\end{DoxyCode}


Used when using referring to an object one more time. 



Referenced by \mbox{\hyperlink{group__Eeze__Net_ga334024e69b8e278ce812f1efac2cd261}{eeze\+\_\+net\+\_\+new()}}, \mbox{\hyperlink{group__Eio__Monitor_ga61c44160641b291706fe24b635545d70}{eio\+\_\+monitor\+\_\+stringshared\+\_\+add()}}, \mbox{\hyperlink{group__Emotion__Info_ga6d87df6c91a4a684d90d79a6c749021e}{emotion\+\_\+object\+\_\+last\+\_\+position\+\_\+load()}}, \mbox{\hyperlink{group__Emotion__Info_gaa170079b852800ba5bd822d77267386e}{emotion\+\_\+object\+\_\+last\+\_\+position\+\_\+save()}}, and \mbox{\hyperlink{group__Ethumb__Client__Basics_gab69c8658057776f0d103237164737753}{ethumb\+\_\+client\+\_\+thumb\+\_\+exists()}}.

\Hypertarget{group__Eina__Refcount_ga85c005aaee53141665fb5ea88e10f5e0}\index{References counting@{References counting}!EINA\_REFCOUNT\_UNREF@{EINA\_REFCOUNT\_UNREF}}
\index{EINA\_REFCOUNT\_UNREF@{EINA\_REFCOUNT\_UNREF}!References counting@{References counting}}
\doxysubsubsubsubsection{\texorpdfstring{EINA\_REFCOUNT\_UNREF}{EINA\_REFCOUNT\_UNREF}}
{\footnotesize\ttfamily \label{group__Eina__Refcount_ga85c005aaee53141665fb5ea88e10f5e0} 
\#define EINA\+\_\+\+REFCOUNT\+\_\+\+UNREF(\begin{DoxyParamCaption}\item[{}]{Variable}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \textcolor{keywordflow}{if}\ (-\/-\/((Variable)-\/>\_\_refcount)\ ==\ 0)}

\end{DoxyCode}


Used when removing a reference to an object. 

The code just after will automatically be called when necessary 

Referenced by \mbox{\hyperlink{group__Eeze__Net_ga192cd8aa41b6ddf98bd497e5a00d36e3}{eeze\+\_\+net\+\_\+free()}}, \mbox{\hyperlink{group__Eio__Monitor_ga05cbc38b310f34c56869b40034048742}{eio\+\_\+monitor\+\_\+del()}}, \mbox{\hyperlink{group__Ethumb__Client__Basics_ga23330db7a756b6ba8026b1bb33ce720d}{ethumb\+\_\+client\+\_\+disconnect()}}, and \mbox{\hyperlink{group__Ethumb__Client__Basics_gad96b376ead632e96723ca9f9b0735918}{ethumb\+\_\+client\+\_\+thumb\+\_\+exists\+\_\+cancel()}}.

\Hypertarget{group__Eina__Refcount_ga3987f48cd01a1c3d17f6b59d65d22a33}\index{References counting@{References counting}!EINA\_REFCOUNT\_GET@{EINA\_REFCOUNT\_GET}}
\index{EINA\_REFCOUNT\_GET@{EINA\_REFCOUNT\_GET}!References counting@{References counting}}
\doxysubsubsubsubsection{\texorpdfstring{EINA\_REFCOUNT\_GET}{EINA\_REFCOUNT\_GET}}
{\footnotesize\ttfamily \label{group__Eina__Refcount_ga3987f48cd01a1c3d17f6b59d65d22a33} 
\#define EINA\+\_\+\+REFCOUNT\+\_\+\+GET(\begin{DoxyParamCaption}\item[{}]{Variable}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(Variable)-\/>\_\_refcount}

\end{DoxyCode}


Get refcounting value. 

