\hypertarget{group__Eo__Class__Base}{}\section{Eo\textquotesingle{}s Base class.}
\label{group__Eo__Class__Base}\index{Eo\textquotesingle{}s Base class.@{Eo\textquotesingle{}s Base class.}}
\subsection*{Modules}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Eo__Events}{Eo\textquotesingle{}s Event Handling}
\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{group__Eo__Class__Base_ga23282521d3cb703afb2b67c7b204d403}{eo\+\_\+weak\+\_\+ref}(wref)
\begin{DoxyCompactList}\small\item\em Reference a pointer to an Eo object. \end{DoxyCompactList}\item 
\#define \hyperlink{group__Eo__Class__Base_ga444106393c7e90b072c65f6dacb0d121}{eo\+\_\+weak\+\_\+unref}(wref)
\begin{DoxyCompactList}\small\item\em Unreference a pointer to an Eo object. \end{DoxyCompactList}\item 
\#define \hyperlink{group__Eo__Class__Base_ga874cfa5979e41d7babdf141fee168348}{eo\+\_\+wref\+\_\+del\+\_\+safe}(wref)~\hyperlink{group__Eo__Class__Base_ga444106393c7e90b072c65f6dacb0d121}{eo\+\_\+weak\+\_\+unref}(wref)
\begin{DoxyCompactList}\small\item\em Delete the weak reference passed. \end{DoxyCompactList}\item 
\hypertarget{group__Eo__Class__Base_ga5035eec8b38b903eb485335bc6841651}{}\#define {\bfseries E\+O\+\_\+\+E\+V\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+A\+D\+D}~E\+O\+\_\+\+B\+A\+S\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+A\+D\+D\label{group__Eo__Class__Base_ga5035eec8b38b903eb485335bc6841651}

\item 
\hypertarget{group__Eo__Class__Base_gaa27717736564b5ea53dc93bbb15ae767}{}\#define {\bfseries E\+O\+\_\+\+E\+V\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+L}~E\+O\+\_\+\+B\+A\+S\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+C\+A\+L\+L\+B\+A\+C\+K\+\_\+\+D\+E\+L\label{group__Eo__Class__Base_gaa27717736564b5ea53dc93bbb15ae767}

\item 
\hypertarget{group__Eo__Class__Base_gab43b13a5e7158d33b57154cbd08c6f6b}{}\#define {\bfseries E\+O\+\_\+\+E\+V\+\_\+\+D\+E\+L}~E\+O\+\_\+\+B\+A\+S\+E\+\_\+\+E\+V\+E\+N\+T\+\_\+\+D\+E\+L\label{group__Eo__Class__Base_gab43b13a5e7158d33b57154cbd08c6f6b}

\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef void($\ast$ \hyperlink{group__Eo__Class__Base_ga407ed32e8bb8c68e30967e033db49159}{eo\+\_\+key\+\_\+data\+\_\+free\+\_\+func}) (void $\ast$)
\begin{DoxyCompactList}\small\item\em Data free func prototype. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}


\subsection{Macro Definition Documentation}
\hypertarget{group__Eo__Class__Base_ga23282521d3cb703afb2b67c7b204d403}{}\index{Eo\textquotesingle{}s Base class.@{Eo\textquotesingle{}s Base class.}!eo\+\_\+weak\+\_\+ref@{eo\+\_\+weak\+\_\+ref}}
\index{eo\+\_\+weak\+\_\+ref@{eo\+\_\+weak\+\_\+ref}!Eo\textquotesingle{}s Base class.@{Eo\textquotesingle{}s Base class.}}
\subsubsection[{eo\+\_\+weak\+\_\+ref}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+weak\+\_\+ref(
\begin{DoxyParamCaption}
\item[{}]{wref}
\end{DoxyParamCaption}
)}\label{group__Eo__Class__Base_ga23282521d3cb703afb2b67c7b204d403}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                               \(\backslash\)
    if (*wref) eo\_do(*wref, eo\_wref\_add(wref));  \(\backslash\)
  \} while (0)
\end{DoxyCode}


Reference a pointer to an Eo object. 


\begin{DoxyParams}{Parameters}
{\em wref} & the pointer to use for the weak ref\\
\hline
\end{DoxyParams}
Same as eo\+\_\+wref\+\_\+add() with the difference that it call eo\+\_\+do() itself. Checking for $\ast$wref N\+U\+L\+L and making sure that you pass the right pointer to both side of eo\+\_\+do().

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eo__Class__Base_ga444106393c7e90b072c65f6dacb0d121}{eo\+\_\+weak\+\_\+unref} 

eo\+\_\+wref\+\_\+add 
\end{DoxySeeAlso}
\hypertarget{group__Eo__Class__Base_ga444106393c7e90b072c65f6dacb0d121}{}\index{Eo\textquotesingle{}s Base class.@{Eo\textquotesingle{}s Base class.}!eo\+\_\+weak\+\_\+unref@{eo\+\_\+weak\+\_\+unref}}
\index{eo\+\_\+weak\+\_\+unref@{eo\+\_\+weak\+\_\+unref}!Eo\textquotesingle{}s Base class.@{Eo\textquotesingle{}s Base class.}}
\subsubsection[{eo\+\_\+weak\+\_\+unref}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+weak\+\_\+unref(
\begin{DoxyParamCaption}
\item[{}]{wref}
\end{DoxyParamCaption}
)}\label{group__Eo__Class__Base_ga444106393c7e90b072c65f6dacb0d121}
{\bfseries Value\+:}
\begin{DoxyCode}
\textcolor{keywordflow}{do} \{                                               \(\backslash\)
    if (*wref) eo\_do(*wref, eo\_wref\_del(wref));  \(\backslash\)
  \} while (0)
\end{DoxyCode}


Unreference a pointer to an Eo object. 


\begin{DoxyParams}{Parameters}
{\em wref} & the pointer to use for the weak unref\\
\hline
\end{DoxyParams}
Same as eo\+\_\+wref\+\_\+del() with the difference that it call eo\+\_\+do() itself. Checking for $\ast$wref N\+U\+L\+L and making sure that you pass the right pointer to both side of eo\+\_\+do().

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Eo__Class__Base_ga23282521d3cb703afb2b67c7b204d403}{eo\+\_\+weak\+\_\+ref} 

eo\+\_\+wref\+\_\+del 

\hyperlink{group__Eo__Class__Base_ga874cfa5979e41d7babdf141fee168348}{eo\+\_\+wref\+\_\+del\+\_\+safe} 
\end{DoxySeeAlso}
\hypertarget{group__Eo__Class__Base_ga874cfa5979e41d7babdf141fee168348}{}\index{Eo\textquotesingle{}s Base class.@{Eo\textquotesingle{}s Base class.}!eo\+\_\+wref\+\_\+del\+\_\+safe@{eo\+\_\+wref\+\_\+del\+\_\+safe}}
\index{eo\+\_\+wref\+\_\+del\+\_\+safe@{eo\+\_\+wref\+\_\+del\+\_\+safe}!Eo\textquotesingle{}s Base class.@{Eo\textquotesingle{}s Base class.}}
\subsubsection[{eo\+\_\+wref\+\_\+del\+\_\+safe}]{\setlength{\rightskip}{0pt plus 5cm}\#define eo\+\_\+wref\+\_\+del\+\_\+safe(
\begin{DoxyParamCaption}
\item[{}]{wref}
\end{DoxyParamCaption}
)~{\bf eo\+\_\+weak\+\_\+unref}(wref)}\label{group__Eo__Class__Base_ga874cfa5979e41d7babdf141fee168348}


Delete the weak reference passed. 


\begin{DoxyParams}{Parameters}
{\em wref} & the weak reference to free.\\
\hline
\end{DoxyParams}
Same as eo\+\_\+wref\+\_\+del(), with the different that it\textquotesingle{}s not called from eo\+\_\+do() so you don\textquotesingle{}t need to check if $\ast$wref is not N\+U\+L\+L.

\begin{DoxySeeAlso}{See also}
\#eo\+\_\+wref\+\_\+del 
\end{DoxySeeAlso}


\subsection{Typedef Documentation}
\hypertarget{group__Eo__Class__Base_ga407ed32e8bb8c68e30967e033db49159}{}\index{Eo\textquotesingle{}s Base class.@{Eo\textquotesingle{}s Base class.}!eo\+\_\+key\+\_\+data\+\_\+free\+\_\+func@{eo\+\_\+key\+\_\+data\+\_\+free\+\_\+func}}
\index{eo\+\_\+key\+\_\+data\+\_\+free\+\_\+func@{eo\+\_\+key\+\_\+data\+\_\+free\+\_\+func}!Eo\textquotesingle{}s Base class.@{Eo\textquotesingle{}s Base class.}}
\subsubsection[{eo\+\_\+key\+\_\+data\+\_\+free\+\_\+func}]{\setlength{\rightskip}{0pt plus 5cm}eo\+\_\+key\+\_\+data\+\_\+free\+\_\+func}\label{group__Eo__Class__Base_ga407ed32e8bb8c68e30967e033db49159}


Data free func prototype. 

X\+X\+X\+: D\+O N\+O\+T U\+S\+E, only here for legacy. 