\hypertarget{group__Ecore__Buffer__Consumer__Group}{}\section{Ecore Buffer Consumer functions}
\label{group__Ecore__Buffer__Consumer__Group}\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}


This group of functions is applied to an Ecore\+\_\+\+Buffer\+\_\+\+Consumer object.  


\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Consumer \hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}
\begin{DoxyCompactList}\small\item\em An object representing a consumer of Ecore\+\_\+\+Buffer. \end{DoxyCompactList}\item 
typedef void($\ast$ \hyperlink{group__Ecore__Buffer__Consumer__Group_gafcf2d27149bdfec2a3ece92b51384d50}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb}) (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Provider connected. \end{DoxyCompactList}\item 
typedef void($\ast$ \hyperlink{group__Ecore__Buffer__Consumer__Group_ga04310677bdf963c75f51683eee4189da}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb}) (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Provider disonnected. \end{DoxyCompactList}\item 
typedef void($\ast$ \hyperlink{group__Ecore__Buffer__Consumer__Group_gae1517ca93d458be462ceb624230d2352}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb}) (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Called whenever a Ecore\+\_\+\+Buffer enqueued in buffer queue. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$ \hyperlink{group__Ecore__Buffer__Consumer__Group_gacb4a4bef34dc120298d681086604979d}{ecore\+\_\+buffer\+\_\+consumer\+\_\+new} (const char $\ast$name, int32\+\_\+t queue\+\_\+size, int32\+\_\+t w, int32\+\_\+t h)
\begin{DoxyCompactList}\small\item\em Creates a new Buffer Consumer based on name and common parameters. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Ecore__Buffer__Consumer__Group_gaab843820c45b1f09fdd049aa2cffd9a8}{ecore\+\_\+buffer\+\_\+consumer\+\_\+free} (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer)
\begin{DoxyCompactList}\small\item\em Free an Ecore\+\_\+\+Buffer\+\_\+\+Consumer. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer} $\ast$ \hyperlink{group__Ecore__Buffer__Consumer__Group_ga57516da731f2131bec41b8d7202582d7}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue} (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer)
\begin{DoxyCompactList}\small\item\em Return the latest Ecore\+\_\+\+Buffer submitted by provider. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__Buffer__Consumer__Group_ga7693c024896077ae57a69f26010cf78c}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release} (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer, \hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em Release the acquired Ecore\+\_\+\+Buffer. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__Buffer__Consumer__Group_gaa7f7f27f4e9ced45c49087ed08acdf5f}{ecore\+\_\+buffer\+\_\+consumer\+\_\+queue\+\_\+is\+\_\+empty} (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer)
\begin{DoxyCompactList}\small\item\em Check if Queue of Ecore\+\_\+\+Buffer is empty. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Ecore__Buffer__Consumer__Group_ga59eadebc8b92f112d862b2516f19e22a}{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set} (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer, \hyperlink{group__Ecore__Buffer__Consumer__Group_gafcf2d27149bdfec2a3ece92b51384d50}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set a callback for provider connection events. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Ecore__Buffer__Consumer__Group_ga437c98426f9b3863996293f611659489}{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set} (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer, \hyperlink{group__Ecore__Buffer__Consumer__Group_ga04310677bdf963c75f51683eee4189da}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set a callback for provider disconnection events. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void \hyperlink{group__Ecore__Buffer__Consumer__Group_ga1fdf448c1a3e059002827ea697efa138}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set} (\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$consumer, \hyperlink{group__Ecore__Buffer__Consumer__Group_gae1517ca93d458be462ceb624230d2352}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set a callback for enqueued buffer events. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
This group of functions is applied to an Ecore\+\_\+\+Buffer\+\_\+\+Consumer object. 

Ecore\+\_\+\+Buffer\+\_\+\+Consumer receives Ecore\+\_\+\+Buffer enqueued by Ecore\+\_\+\+Buffer\+\_\+\+Provider. Consumer must release Ecore\+\_\+\+Buffer when it\textquotesingle{}s no longer used. Thus, the Ecore\+\_\+\+Buffer\+\_\+\+Provider is now free to re-\/use or destroy Ecore\+\_\+\+Buffer. 

\subsection{Typedef Documentation}
\hypertarget{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{}\label{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!Ecore\+\_\+\+Buffer\+\_\+\+Consumer@{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}}
\index{Ecore\+\_\+\+Buffer\+\_\+\+Consumer@{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}{Ecore\_Buffer\_Consumer}}
{\footnotesize\ttfamily \hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}}



An object representing a consumer of Ecore\+\_\+\+Buffer. 

\begin{DoxySince}{Since}
1.\+15 
\end{DoxySince}
\hypertarget{group__Ecore__Buffer__Consumer__Group_gafcf2d27149bdfec2a3ece92b51384d50}{}\label{group__Ecore__Buffer__Consumer__Group_gafcf2d27149bdfec2a3ece92b51384d50} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb@{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb}}
\index{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb@{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb}{Ecore\_Buffer\_Consumer\_Provider\_Add\_Cb}}
{\footnotesize\ttfamily Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb}



Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Provider connected. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Buffer__Consumer__Group_ga59eadebc8b92f112d862b2516f19e22a}{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set()} 
\end{DoxySeeAlso}
\hypertarget{group__Ecore__Buffer__Consumer__Group_ga04310677bdf963c75f51683eee4189da}{}\label{group__Ecore__Buffer__Consumer__Group_ga04310677bdf963c75f51683eee4189da} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb@{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb}}
\index{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb@{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb}{Ecore\_Buffer\_Consumer\_Provider\_Del\_Cb}}
{\footnotesize\ttfamily Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb}



Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Provider disonnected. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Buffer__Consumer__Group_ga437c98426f9b3863996293f611659489}{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set()} 
\end{DoxySeeAlso}
\hypertarget{group__Ecore__Buffer__Consumer__Group_gae1517ca93d458be462ceb624230d2352}{}\label{group__Ecore__Buffer__Consumer__Group_gae1517ca93d458be462ceb624230d2352} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb@{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb}}
\index{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb@{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb}{Ecore\_Buffer\_Consumer\_Enqueue\_Cb}}
{\footnotesize\ttfamily Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb}



Called whenever a Ecore\+\_\+\+Buffer enqueued in buffer queue. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Buffer__Consumer__Group_ga1fdf448c1a3e059002827ea697efa138}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set()} 
\end{DoxySeeAlso}


\subsection{Function Documentation}
\hypertarget{group__Ecore__Buffer__Consumer__Group_gacb4a4bef34dc120298d681086604979d}{}\label{group__Ecore__Buffer__Consumer__Group_gacb4a4bef34dc120298d681086604979d} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!ecore\+\_\+buffer\+\_\+consumer\+\_\+new@{ecore\+\_\+buffer\+\_\+consumer\+\_\+new}}
\index{ecore\+\_\+buffer\+\_\+consumer\+\_\+new@{ecore\+\_\+buffer\+\_\+consumer\+\_\+new}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+consumer\+\_\+new()}{ecore\_buffer\_consumer\_new()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}$\ast$ ecore\+\_\+buffer\+\_\+consumer\+\_\+new (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name,  }\item[{int32\+\_\+t}]{queue\+\_\+size,  }\item[{int32\+\_\+t}]{w,  }\item[{int32\+\_\+t}]{h }\end{DoxyParamCaption})}



Creates a new Buffer Consumer based on name and common parameters. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em name} & the name of Buffer\+\_\+\+Queue, this is needed by Consumer and Provider to connect each other. \\
\hline
\mbox{\tt in}  & {\em queue\+\_\+size} & size of Queue (If you pass this 0, then default size two(2) is appied) \\
\hline
\mbox{\tt in}  & {\em w} & width of buffer recommeneded to provider. \\
\hline
\mbox{\tt in}  & {\em h} & height of buffer recommended to provider.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Ecore\+\_\+\+Buffer\+\_\+\+Consumer instance or {\ttfamily N\+U\+LL} if creation failed. 
\end{DoxyReturn}
\hypertarget{group__Ecore__Buffer__Consumer__Group_gaab843820c45b1f09fdd049aa2cffd9a8}{}\label{group__Ecore__Buffer__Consumer__Group_gaab843820c45b1f09fdd049aa2cffd9a8} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!ecore\+\_\+buffer\+\_\+consumer\+\_\+free@{ecore\+\_\+buffer\+\_\+consumer\+\_\+free}}
\index{ecore\+\_\+buffer\+\_\+consumer\+\_\+free@{ecore\+\_\+buffer\+\_\+consumer\+\_\+free}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+consumer\+\_\+free()}{ecore\_buffer\_consumer\_free()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void ecore\+\_\+buffer\+\_\+consumer\+\_\+free (\begin{DoxyParamCaption}\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$}]{consumer }\end{DoxyParamCaption})}



Free an Ecore\+\_\+\+Buffer\+\_\+\+Consumer. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to free\\
\hline
\end{DoxyParams}
This frees up any memory used by the Ecore\+\_\+\+Buffer\+\_\+\+Consumer. \hypertarget{group__Ecore__Buffer__Consumer__Group_ga57516da731f2131bec41b8d7202582d7}{}\label{group__Ecore__Buffer__Consumer__Group_ga57516da731f2131bec41b8d7202582d7} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue@{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue}}
\index{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue@{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue()}{ecore\_buffer\_consumer\_buffer\_dequeue()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}$\ast$ ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue (\begin{DoxyParamCaption}\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$}]{consumer }\end{DoxyParamCaption})}



Return the latest Ecore\+\_\+\+Buffer submitted by provider. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to request for buffer\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Ecore\+\_\+\+Buffer handle or N\+U\+LL if acquirement failed.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Buffer__Consumer__Group_ga7693c024896077ae57a69f26010cf78c}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release()}
\end{DoxySeeAlso}
Consumer can store Ecore\+\_\+\+Buffer submitted by Provider as much as size of queue which is passed as a argument of \hyperlink{group__Ecore__Buffer__Consumer__Group_gacb4a4bef34dc120298d681086604979d}{ecore\+\_\+buffer\+\_\+consumer\+\_\+new()}. \hypertarget{group__Ecore__Buffer__Consumer__Group_ga7693c024896077ae57a69f26010cf78c}{}\label{group__Ecore__Buffer__Consumer__Group_ga7693c024896077ae57a69f26010cf78c} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release@{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release}}
\index{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release@{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release()}{ecore\_buffer\_consumer\_buffer\_release()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release (\begin{DoxyParamCaption}\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$}]{consumer,  }\item[{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer} $\ast$}]{buffer }\end{DoxyParamCaption})}



Release the acquired Ecore\+\_\+\+Buffer. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to request release buffer \\
\hline
\mbox{\tt in}  & {\em buffer} & The Ecore\+\_\+\+Buffer to release\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} otherwise.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Buffer__Consumer__Group_ga57516da731f2131bec41b8d7202582d7}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue()}
\end{DoxySeeAlso}
Consumer should release the Ecore\+\_\+\+Buffer after acquiring and using it. By doing release, Ecore\+\_\+\+Buffer will be used by provider again, or freed internally if Ecore\+\_\+\+Buffer is not necessary anymore. If not, the resource of Ecore\+\_\+\+Buffer is continually owned by consumer until released. \hypertarget{group__Ecore__Buffer__Consumer__Group_gaa7f7f27f4e9ced45c49087ed08acdf5f}{}\label{group__Ecore__Buffer__Consumer__Group_gaa7f7f27f4e9ced45c49087ed08acdf5f} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!ecore\+\_\+buffer\+\_\+consumer\+\_\+queue\+\_\+is\+\_\+empty@{ecore\+\_\+buffer\+\_\+consumer\+\_\+queue\+\_\+is\+\_\+empty}}
\index{ecore\+\_\+buffer\+\_\+consumer\+\_\+queue\+\_\+is\+\_\+empty@{ecore\+\_\+buffer\+\_\+consumer\+\_\+queue\+\_\+is\+\_\+empty}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+consumer\+\_\+queue\+\_\+is\+\_\+empty()}{ecore\_buffer\_consumer\_queue\_is\_empty()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} ecore\+\_\+buffer\+\_\+consumer\+\_\+queue\+\_\+is\+\_\+empty (\begin{DoxyParamCaption}\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$}]{consumer }\end{DoxyParamCaption})}



Check if Queue of Ecore\+\_\+\+Buffer is empty. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to query\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily E\+I\+N\+A\+\_\+\+T\+R\+UE} means queue is empty, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+SE} otherwise. 
\end{DoxyReturn}
\hypertarget{group__Ecore__Buffer__Consumer__Group_ga59eadebc8b92f112d862b2516f19e22a}{}\label{group__Ecore__Buffer__Consumer__Group_ga59eadebc8b92f112d862b2516f19e22a} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set}}
\index{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set()}{ecore\_buffer\_consumer\_provider\_add\_cb\_set()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$}]{consumer,  }\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_gafcf2d27149bdfec2a3ece92b51384d50}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Set a callback for provider connection events. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to set callbacks on \\
\hline
\mbox{\tt in}  & {\em func} & The function to call \\
\hline
\mbox{\tt in}  & {\em data} & A pointer to the user data to store.\\
\hline
\end{DoxyParams}
A call to this function will set a callback on an Ecore\+\_\+\+Buffer\+\_\+\+Consumer, causing {\ttfamily func} to be called whenever {\ttfamily consumer} is connected with provider. \hypertarget{group__Ecore__Buffer__Consumer__Group_ga437c98426f9b3863996293f611659489}{}\label{group__Ecore__Buffer__Consumer__Group_ga437c98426f9b3863996293f611659489} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set}}
\index{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set()}{ecore\_buffer\_consumer\_provider\_del\_cb\_set()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$}]{consumer,  }\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga04310677bdf963c75f51683eee4189da}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Set a callback for provider disconnection events. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to set callbacks on \\
\hline
\mbox{\tt in}  & {\em func} & The function to call \\
\hline
\mbox{\tt in}  & {\em data} & A pointer to the user data to store.\\
\hline
\end{DoxyParams}
A call to this function will set a callback on an Ecore\+\_\+\+Buffer\+\_\+\+Consumer, causing {\ttfamily func} to be called whenever {\ttfamily consumer} is disconnected with provider. \hypertarget{group__Ecore__Buffer__Consumer__Group_ga1fdf448c1a3e059002827ea697efa138}{}\label{group__Ecore__Buffer__Consumer__Group_ga1fdf448c1a3e059002827ea697efa138} 
\index{Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}!ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set}}
\index{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set}!Ecore Buffer Consumer functions@{Ecore Buffer Consumer functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set()}{ecore\_buffer\_consumer\_buffer\_enqueued\_cb\_set()}}
{\footnotesize\ttfamily \hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI} void ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer} $\ast$}]{consumer,  }\item[{\hyperlink{group__Ecore__Buffer__Consumer__Group_gae1517ca93d458be462ceb624230d2352}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Set a callback for enqueued buffer events. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to set callbacks on \\
\hline
\mbox{\tt in}  & {\em func} & The function to call \\
\hline
\mbox{\tt in}  & {\em data} & A pointer to the user data to store.\\
\hline
\end{DoxyParams}
A call to this function will set a callback on an Ecore\+\_\+\+Buffer\+\_\+\+Consumer, causing {\ttfamily func} to be called whenever {\ttfamily consumer} has received buffer submitted from provider.

You may success acuiqre Ecore\+\_\+\+Buffer after this callback called. 