\hypertarget{struct__Eina__Future__Cb__Easy__Desc}{}\doxysection{\+\_\+\+Eina\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Easy\+\_\+\+Desc Struct Reference}
\label{struct__Eina__Future__Cb__Easy__Desc}\index{\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}}
\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Eina__Promise_ga93b2841efbc82b31ea37cf0edeb60a9d}{Eina\+\_\+\+Future\+\_\+\+Success\+\_\+\+Cb}} \mbox{\hyperlink{struct__Eina__Future__Cb__Easy__Desc_a15ec41c953419c10745fb2738fd311d5}{success}}
\begin{DoxyCompactList}\small\item\em Called on success (value.\+type is not {\ttfamily E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+R\+R\+OR}). \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Promise_gaa851e400869a2ca7b072d348175bd83f}{Eina\+\_\+\+Future\+\_\+\+Error\+\_\+\+Cb}} \mbox{\hyperlink{struct__Eina__Future__Cb__Easy__Desc_af785ac4390997ecbdf13e89aa4840c34}{error}}
\begin{DoxyCompactList}\small\item\em Called on error (value.\+type is {\ttfamily E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+R\+R\+OR}). \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Eina__Promise_ga8d3d898f0c73827404fc2e258767a6c7}{Eina\+\_\+\+Future\+\_\+\+Free\+\_\+\+Cb}} \mbox{\hyperlink{struct__Eina__Future__Cb__Easy__Desc_a9ae635f5d45413527f77755a19abb77e}{free}}
\begin{DoxyCompactList}\small\item\em Called on {\bfseries{all}} situations to notify future destruction. \end{DoxyCompactList}\item 
const \mbox{\hyperlink{group__Eina__Value__Group_gaab67ab8bcd0624280c5276044b07e0d2}{Eina\+\_\+\+Value\+\_\+\+Type}} $\ast$ \mbox{\hyperlink{struct__Eina__Future__Cb__Easy__Desc_a5112a2ccff7f8b1c48c242763a948d05}{success\+\_\+type}}
\begin{DoxyCompactList}\small\item\em If provided, then {\ttfamily success} will only be called if the value type matches the given pointer. \end{DoxyCompactList}\item 
const void $\ast$ \mbox{\hyperlink{struct__Eina__Future__Cb__Easy__Desc_a5a7e0f4bd6e32f107bf17a05352da0e5}{data}}
\begin{DoxyCompactList}\small\item\em Context data given to every callback. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
A struct with callbacks to be used by \mbox{\hyperlink{group__Eina__Future_gaad0c23b540f1424301d2609a35ef8eac}{eina\+\_\+future\+\_\+cb\+\_\+easy\+\_\+from\+\_\+desc()}} and \mbox{\hyperlink{group__Eina__Future_ga57f56d13f3f3bb13651ea3b81b59e8f1}{eina\+\_\+future\+\_\+cb\+\_\+easy()}}

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Eina__Future_gaad0c23b540f1424301d2609a35ef8eac}{eina\+\_\+future\+\_\+cb\+\_\+easy\+\_\+from\+\_\+desc()}} 

\mbox{\hyperlink{group__Eina__Future_ga57f56d13f3f3bb13651ea3b81b59e8f1}{eina\+\_\+future\+\_\+cb\+\_\+easy()}} 
\end{DoxySeeAlso}


\doxysubsection{Field Documentation}
\mbox{\Hypertarget{struct__Eina__Future__Cb__Easy__Desc_a15ec41c953419c10745fb2738fd311d5}\label{struct__Eina__Future__Cb__Easy__Desc_a15ec41c953419c10745fb2738fd311d5}} 
\index{\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}!success@{success}}
\index{success@{success}!\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}}
\doxysubsubsection{\texorpdfstring{success}{success}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Promise_ga93b2841efbc82b31ea37cf0edeb60a9d}{Eina\+\_\+\+Future\+\_\+\+Success\+\_\+\+Cb}} \+\_\+\+Eina\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Easy\+\_\+\+Desc\+::success}



Called on success (value.\+type is not {\ttfamily E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+R\+R\+OR}). 

if {\ttfamily success\+\_\+type} is not N\+U\+LL, then the value is guaranteed to be of that type, if it\textquotesingle{}s not, then it will trigger {\ttfamily error} with {\ttfamily E\+I\+N\+V\+AL}.

After this function returns, {\ttfamily free} callback is called if provided. 

Referenced by eina\+\_\+future\+\_\+chain\+\_\+easy\+\_\+array().

\mbox{\Hypertarget{struct__Eina__Future__Cb__Easy__Desc_af785ac4390997ecbdf13e89aa4840c34}\label{struct__Eina__Future__Cb__Easy__Desc_af785ac4390997ecbdf13e89aa4840c34}} 
\index{\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}!error@{error}}
\index{error@{error}!\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}}
\doxysubsubsection{\texorpdfstring{error}{error}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Promise_gaa851e400869a2ca7b072d348175bd83f}{Eina\+\_\+\+Future\+\_\+\+Error\+\_\+\+Cb}} \+\_\+\+Eina\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Easy\+\_\+\+Desc\+::error}



Called on error (value.\+type is {\ttfamily E\+I\+N\+A\+\_\+\+V\+A\+L\+U\+E\+\_\+\+T\+Y\+P\+E\+\_\+\+E\+R\+R\+OR}). 

This function can return another error, propagating or converting it. However it may also return a non-\/error, in this case the next future in chain will receive a regular value, which may call its {\ttfamily success}.

If this function is not provided, then it will passthrough the error to the next error handler.

It may be called with {\ttfamily E\+I\+N\+V\+AL} if {\ttfamily success\+\_\+type} is provided and doesn\textquotesingle{}t match the received type.

It may be called with {\ttfamily E\+C\+A\+N\+C\+E\+L\+ED} if future was canceled.

It may be called with {\ttfamily E\+N\+O\+M\+EM} if memory allocation failed during callback creation.

After this function returns, {\ttfamily free} callback is called if provided. 

Referenced by eina\+\_\+future\+\_\+cb\+\_\+easy\+\_\+desc\+\_\+flush(), and eina\+\_\+future\+\_\+chain\+\_\+easy\+\_\+array().

\mbox{\Hypertarget{struct__Eina__Future__Cb__Easy__Desc_a9ae635f5d45413527f77755a19abb77e}\label{struct__Eina__Future__Cb__Easy__Desc_a9ae635f5d45413527f77755a19abb77e}} 
\index{\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}!free@{free}}
\index{free@{free}!\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}}
\doxysubsubsection{\texorpdfstring{free}{free}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Eina__Promise_ga8d3d898f0c73827404fc2e258767a6c7}{Eina\+\_\+\+Future\+\_\+\+Free\+\_\+\+Cb}} \+\_\+\+Eina\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Easy\+\_\+\+Desc\+::free}



Called on {\bfseries{all}} situations to notify future destruction. 

This is called after {\ttfamily success} or {\ttfamily error}, as well as it\textquotesingle{}s called if none of them are provided. Thus can be used as a \char`\"{}weak ref\char`\"{} mechanism. 

Referenced by eina\+\_\+future\+\_\+cb\+\_\+easy\+\_\+desc\+\_\+flush(), and eina\+\_\+future\+\_\+chain\+\_\+easy\+\_\+array().

\mbox{\Hypertarget{struct__Eina__Future__Cb__Easy__Desc_a5112a2ccff7f8b1c48c242763a948d05}\label{struct__Eina__Future__Cb__Easy__Desc_a5112a2ccff7f8b1c48c242763a948d05}} 
\index{\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}!success\_type@{success\_type}}
\index{success\_type@{success\_type}!\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}}
\doxysubsubsection{\texorpdfstring{success\_type}{success\_type}}
{\footnotesize\ttfamily const \mbox{\hyperlink{group__Eina__Value__Group_gaab67ab8bcd0624280c5276044b07e0d2}{Eina\+\_\+\+Value\+\_\+\+Type}}$\ast$ \+\_\+\+Eina\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Easy\+\_\+\+Desc\+::success\+\_\+type}



If provided, then {\ttfamily success} will only be called if the value type matches the given pointer. 

If provided and doesn\textquotesingle{}t match, then {\ttfamily error} will be called with {\ttfamily E\+I\+N\+V\+AL}. If no {\ttfamily error}, then it will be propagated to the next future in the chain. 

Referenced by eina\+\_\+future\+\_\+chain\+\_\+easy\+\_\+array().

\mbox{\Hypertarget{struct__Eina__Future__Cb__Easy__Desc_a5a7e0f4bd6e32f107bf17a05352da0e5}\label{struct__Eina__Future__Cb__Easy__Desc_a5a7e0f4bd6e32f107bf17a05352da0e5}} 
\index{\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}!data@{data}}
\index{data@{data}!\_Eina\_Future\_Cb\_Easy\_Desc@{\_Eina\_Future\_Cb\_Easy\_Desc}}
\doxysubsubsection{\texorpdfstring{data}{data}}
{\footnotesize\ttfamily const void$\ast$ \+\_\+\+Eina\+\_\+\+Future\+\_\+\+Cb\+\_\+\+Easy\+\_\+\+Desc\+::data}



Context data given to every callback. 

This must be freed {\bfseries{only}} by {\ttfamily free} callback as it\textquotesingle{}s called from every case, otherwise it may lead to memory leaks. 

Referenced by eina\+\_\+future\+\_\+cb\+\_\+easy\+\_\+desc\+\_\+flush().

