\hypertarget{group__Ecore__Buffer__Consumer__Group}{}\doxysection{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.  


\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Consumer \mbox{\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$ \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gafcf2d27149bdfec2a3ece92b51384d50}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb}}) (\mbox{\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$ \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga04310677bdf963c75f51683eee4189da}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb}}) (\mbox{\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 disconnected. \end{DoxyCompactList}\item 
typedef void($\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gae1517ca93d458be462ceb624230d2352}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb}}) (\mbox{\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}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
EAPI \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga73718bdae77ceec1c5dfa8aaf85bbf57}{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 
EAPI void \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gaab843820c45b1f09fdd049aa2cffd9a8}{ecore\+\_\+buffer\+\_\+consumer\+\_\+free}} (\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$consumer)
\begin{DoxyCompactList}\small\item\em Frees an Ecore\+\_\+\+Buffer\+\_\+\+Consumer. \end{DoxyCompactList}\item 
EAPI \mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gaf20f83804b1a3e3ef902fd2f1578448e}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue}} (\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$consumer)
\begin{DoxyCompactList}\small\item\em Returns the latest Ecore\+\_\+\+Buffer submitted by provider. \end{DoxyCompactList}\item 
EAPI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga7693c024896077ae57a69f26010cf78c}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release}} (\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$consumer, \mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em Releases the acquired Ecore\+\_\+\+Buffer. \end{DoxyCompactList}\item 
EAPI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gaa7f7f27f4e9ced45c49087ed08acdf5f}{ecore\+\_\+buffer\+\_\+consumer\+\_\+queue\+\_\+is\+\_\+empty}} (\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$consumer)
\begin{DoxyCompactList}\small\item\em Checks if Queue of Ecore\+\_\+\+Buffer is empty. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga59eadebc8b92f112d862b2516f19e22a}{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$consumer, \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gafcf2d27149bdfec2a3ece92b51384d50}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb}} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets a callback for provider connection events. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga437c98426f9b3863996293f611659489}{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$consumer, \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga04310677bdf963c75f51683eee4189da}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb}} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets a callback for provider disconnection events. \end{DoxyCompactList}\item 
EAPI void \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga1fdf448c1a3e059002827ea697efa138}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$consumer, \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gae1517ca93d458be462ceb624230d2352}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb}} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets a callback for enqueued buffer events. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{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. 

\doxysubsection{Typedef Documentation}
\mbox{\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}}
\doxysubsubsection{\texorpdfstring{Ecore\_Buffer\_Consumer}{Ecore\_Buffer\_Consumer}}
{\footnotesize\ttfamily \mbox{\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}
\mbox{\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}}
\doxysubsubsection{\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}
\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga59eadebc8b92f112d862b2516f19e22a}{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set()}} 
\end{DoxySeeAlso}
\mbox{\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}}
\doxysubsubsection{\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 disconnected. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga437c98426f9b3863996293f611659489}{ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set()}} 
\end{DoxySeeAlso}
\mbox{\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}}
\doxysubsubsection{\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}
\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga1fdf448c1a3e059002827ea697efa138}{ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set()}} 
\end{DoxySeeAlso}


\doxysubsection{Function Documentation}
\mbox{\Hypertarget{group__Ecore__Buffer__Consumer__Group_ga73718bdae77ceec1c5dfa8aaf85bbf57}\label{group__Ecore__Buffer__Consumer__Group_ga73718bdae77ceec1c5dfa8aaf85bbf57}} 
\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}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_consumer\_new()}{ecore\_buffer\_consumer\_new()}}
{\footnotesize\ttfamily EAPI \mbox{\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{\texttt{ in}}  & {\em name} & The name of Buffer\+\_\+\+Queue, this is needed by Consumer and Provider to connect each other. \\
\hline
\mbox{\texttt{ in}}  & {\em queue\+\_\+size} & Size of Queue (If you pass this 0, then default size two(2) is appied) \\
\hline
\mbox{\texttt{ in}}  & {\em w} & Width of buffer recommended to provider. \\
\hline
\mbox{\texttt{ in}}  & {\em h} & Height of buffer recommended to provider.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Ecore\+\_\+\+Buffer\+\_\+\+Consumer instance or {\ttfamily NULL} if creation failed. 
\end{DoxyReturn}


References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\mbox{\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}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_consumer\_free()}{ecore\_buffer\_consumer\_free()}}
{\footnotesize\ttfamily EAPI void ecore\+\_\+buffer\+\_\+consumer\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$}]{consumer }\end{DoxyParamCaption})}



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

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to free\\
\hline
\end{DoxyParams}
This frees up any memory used by the Ecore\+\_\+\+Buffer\+\_\+\+Consumer. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

\mbox{\Hypertarget{group__Ecore__Buffer__Consumer__Group_gaf20f83804b1a3e3ef902fd2f1578448e}\label{group__Ecore__Buffer__Consumer__Group_gaf20f83804b1a3e3ef902fd2f1578448e}} 
\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}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_consumer\_buffer\_dequeue()}{ecore\_buffer\_consumer\_buffer\_dequeue()}}
{\footnotesize\ttfamily EAPI \mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$ ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+dequeue (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$}]{consumer }\end{DoxyParamCaption})}



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

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to request for buffer\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Ecore\+\_\+\+Buffer handle or {\ttfamily NULL} if acquirement failed.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\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 \mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga73718bdae77ceec1c5dfa8aaf85bbf57}{ecore\+\_\+buffer\+\_\+consumer\+\_\+new()}}. 

References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, and \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\mbox{\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}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_consumer\_buffer\_release()}{ecore\_buffer\_consumer\_buffer\_release()}}
{\footnotesize\ttfamily EAPI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+release (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$}]{consumer,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$}]{buffer }\end{DoxyParamCaption})}



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

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to request release buffer \\
\hline
\mbox{\texttt{ in}}  & {\em buffer} & The Ecore\+\_\+\+Buffer to release\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+TRUE} on success, {\ttfamily EINA\+\_\+\+FALSE} otherwise.
\end{DoxyReturn}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gaf20f83804b1a3e3ef902fd2f1578448e}{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. 

References \mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gab670a83834672729692b11389422b6b3}{ecore\+\_\+buffer\+\_\+free()}}, \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}, and \mbox{\hyperlink{group__Eina__Types__Group_ga05c12dacc8b4058994df842b41be85fc}{EINA\+\_\+\+TRUE}}.

\mbox{\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}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_consumer\_queue\_is\_empty()}{ecore\_buffer\_consumer\_queue\_is\_empty()}}
{\footnotesize\ttfamily EAPI \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} ecore\+\_\+buffer\+\_\+consumer\+\_\+queue\+\_\+is\+\_\+empty (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$}]{consumer }\end{DoxyParamCaption})}



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

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to query\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
{\ttfamily EINA\+\_\+\+TRUE} means queue is empty, {\ttfamily EINA\+\_\+\+FALSE} otherwise. 
\end{DoxyReturn}


References \mbox{\hyperlink{group__Eina__Types__Group_ga1feb115f8e9913e806e090d9bd5a7301}{EINA\+\_\+\+FALSE}}, and \mbox{\hyperlink{group__Eina__Safety__Checks__Group_gab2b07061fc6500dedd9cd41c8d16f95d}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN\+\_\+\+VAL}}.

\mbox{\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}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_consumer\_provider\_add\_cb\_set()}{ecore\_buffer\_consumer\_provider\_add\_cb\_set()}}
{\footnotesize\ttfamily EAPI void ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+add\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$}]{consumer,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gafcf2d27149bdfec2a3ece92b51384d50}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Add\+\_\+\+Cb}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Sets a callback for provider connection events. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to set callbacks on \\
\hline
\mbox{\texttt{ in}}  & {\em func} & The function to call \\
\hline
\mbox{\texttt{ 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. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

\mbox{\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}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_consumer\_provider\_del\_cb\_set()}{ecore\_buffer\_consumer\_provider\_del\_cb\_set()}}
{\footnotesize\ttfamily EAPI void ecore\+\_\+buffer\+\_\+consumer\+\_\+provider\+\_\+del\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$}]{consumer,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga04310677bdf963c75f51683eee4189da}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Provider\+\_\+\+Del\+\_\+\+Cb}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Sets a callback for provider disconnection events. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to set callbacks on \\
\hline
\mbox{\texttt{ in}}  & {\em func} & The function to call \\
\hline
\mbox{\texttt{ 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. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

\mbox{\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}}
\doxysubsubsection{\texorpdfstring{ecore\_buffer\_consumer\_buffer\_enqueued\_cb\_set()}{ecore\_buffer\_consumer\_buffer\_enqueued\_cb\_set()}}
{\footnotesize\ttfamily EAPI void ecore\+\_\+buffer\+\_\+consumer\+\_\+buffer\+\_\+enqueued\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_ga15bea8972d8c1958fd46737a6914d417}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer}} $\ast$}]{consumer,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Consumer__Group_gae1517ca93d458be462ceb624230d2352}{Ecore\+\_\+\+Buffer\+\_\+\+Consumer\+\_\+\+Enqueue\+\_\+\+Cb}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Sets a callback for enqueued buffer events. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em consumer} & The Ecore\+\_\+\+Buffer\+\_\+\+Consumer to set callbacks on \\
\hline
\mbox{\texttt{ in}}  & {\em func} & The function to call \\
\hline
\mbox{\texttt{ 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 acquire Ecore\+\_\+\+Buffer after this callback called. 

References \mbox{\hyperlink{group__Eina__Safety__Checks__Group_ga1ccf8538d0015b3801ff642e6156843a}{EINA\+\_\+\+SAFETY\+\_\+\+ON\+\_\+\+NULL\+\_\+\+RETURN}}.

