\hypertarget{group__Ecore__Buffer__Provider__Group}{}\section{Ecore Buffer Provider functions}
\label{group__Ecore__Buffer__Provider__Group}\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}


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


\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Provider \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}}
\begin{DoxyCompactList}\small\item\em An object representing a provider of Ecore\+\_\+\+Buffer. \end{DoxyCompactList}\item 
typedef void($\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}}) (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, int queue\+\_\+size, int w, int h, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Consumer connected. \end{DoxyCompactList}\item 
typedef void($\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}}) (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Consumer disconnected. \end{DoxyCompactList}\item 
typedef void($\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}}) (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Called whenever a Ecore\+\_\+\+Buffer is released. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return}} \{ \newline
{\bfseries E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+E\+R\+R\+OR}, 
\newline
{\bfseries E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+S\+U\+C\+C\+E\+SS}, 
\newline
{\bfseries E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+E\+M\+P\+TY}, 
\newline
{\bfseries E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+N\+O\+T\+\_\+\+E\+M\+P\+TY}, 
\newline
{\bfseries E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+N\+E\+E\+D\+\_\+\+A\+L\+L\+OC}
 \}
\begin{DoxyCompactList}\small\item\em Types for an buffer queue state on provider side. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$ \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga561aa2d1cc9e019d41294dc20d176903}{ecore\+\_\+buffer\+\_\+provider\+\_\+new}} (const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Creates a new Buffer Provider based on name. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gade2273c3009a631b03d2f2359f2e61e8}{ecore\+\_\+buffer\+\_\+provider\+\_\+free}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider)
\begin{DoxyCompactList}\small\item\em Frees an Ecore\+\_\+\+Buffer\+\_\+\+Provider. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} Ecore\+\_\+\+Buffer\+\_\+\+Return \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$$\ast$ret\+\_\+buf)
\begin{DoxyCompactList}\small\item\em Returns the Ecore\+\_\+\+Buffer released by consumer or State of Queue. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em Submits the Ecore\+\_\+\+Buffer to Consumer to request compositing. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} Ecore\+\_\+\+Buffer\+\_\+\+Return \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider)
\begin{DoxyCompactList}\small\item\em Checks if state of queue. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets a callback for consumer connection events. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets a callback for consumer disconnection events. \end{DoxyCompactList}\item 
\mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set}} (\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$provider, \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Sets a callback for released buffer events. \end{DoxyCompactList}\end{DoxyCompactItemize}


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

Ecore\+\_\+\+Buffer\+\_\+\+Provider provides Ecore\+\_\+\+Buffer to Ecore\+\_\+\+Buffer\+\_\+\+Consumer(usually different process or thread from Ecore\+\_\+\+Buffer\+\_\+\+Provider). Ecore\+\_\+\+Buffer\+\_\+\+Provider should creates Ecore\+\_\+\+Buffer as a provider. 

\subsection{Typedef Documentation}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}\label{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!Ecore\+\_\+\+Buffer\+\_\+\+Provider@{Ecore\+\_\+\+Buffer\+\_\+\+Provider}}
\index{Ecore\+\_\+\+Buffer\+\_\+\+Provider@{Ecore\+\_\+\+Buffer\+\_\+\+Provider}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{Ecore\+\_\+\+Buffer\+\_\+\+Provider}{Ecore\_Buffer\_Provider}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}}}



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

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



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

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



Called whenever a Ecore\+\_\+\+Buffer\+\_\+\+Consumer disconnected. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}\label{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb@{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}}
\index{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb@{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}{Ecore\_Buffer\_Provider\_Enqueue\_Cb}}
{\footnotesize\ttfamily Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}



Called whenever a Ecore\+\_\+\+Buffer is released. 

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set()}} 
\end{DoxySeeAlso}


\subsection{Enumeration Type Documentation}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}\label{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return@{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return}}
\index{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return@{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return}{\_Ecore\_Buffer\_Return}}
{\footnotesize\ttfamily enum \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return}}}



Types for an buffer queue state on provider side. 

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire()}} 

\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check()}} 
\end{DoxySeeAlso}


\subsection{Function Documentation}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga561aa2d1cc9e019d41294dc20d176903}\label{group__Ecore__Buffer__Provider__Group_ga561aa2d1cc9e019d41294dc20d176903}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\+\_\+buffer\+\_\+provider\+\_\+new@{ecore\+\_\+buffer\+\_\+provider\+\_\+new}}
\index{ecore\+\_\+buffer\+\_\+provider\+\_\+new@{ecore\+\_\+buffer\+\_\+provider\+\_\+new}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+provider\+\_\+new()}{ecore\_buffer\_provider\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}}$\ast$ ecore\+\_\+buffer\+\_\+provider\+\_\+new (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Creates a new Buffer Provider based on name. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em name} & The name of Buffer\+\_\+\+Queue.\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Ecore\+\_\+\+Buffer\+\_\+\+Provider instance or {\ttfamily N\+U\+LL} if creation failed. 
\end{DoxyReturn}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gade2273c3009a631b03d2f2359f2e61e8}\label{group__Ecore__Buffer__Provider__Group_gade2273c3009a631b03d2f2359f2e61e8}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\+\_\+buffer\+\_\+provider\+\_\+free@{ecore\+\_\+buffer\+\_\+provider\+\_\+free}}
\index{ecore\+\_\+buffer\+\_\+provider\+\_\+free@{ecore\+\_\+buffer\+\_\+provider\+\_\+free}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+provider\+\_\+free()}{ecore\_buffer\_provider\_free()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void ecore\+\_\+buffer\+\_\+provider\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider }\end{DoxyParamCaption})}



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

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider to free\\
\hline
\end{DoxyParams}
This frees up any memory used by the Ecore\+\_\+\+Buffer\+\_\+\+Provider. \mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}\label{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire@{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire}}
\index{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire@{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire()}{ecore\_buffer\_provider\_buffer\_acquire()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} Ecore\+\_\+\+Buffer\+\_\+\+Return ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$$\ast$}]{ret\+\_\+buf }\end{DoxyParamCaption})}



Returns the Ecore\+\_\+\+Buffer released by consumer or State of Queue. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider to request for buffer \\
\hline
\mbox{\tt out}  & {\em ret\+\_\+buf} & A Pointer to the Ecore\+\_\+\+Buffer\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
The enumeration of Ecore\+\_\+\+Buffer\+\_\+\+Return to indicate result of Dequeuing.
\end{DoxyReturn}
This function gives you drawable buffer and inform you the state of Queue. Each return value of enumeration has meaning as below. \begin{DoxyItemize}
\item E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+E\+R\+R\+OR, means error occurred. \item E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+S\+U\+C\+C\+E\+SS, means success to dequeue, therefore ret\+\_\+buf is valid. \item E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+E\+M\+P\+TY, means queue is empty, not available slot in Queue. in other words, there is no free drawable buffer in Queue. \item E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+N\+E\+E\+D\+\_\+\+A\+L\+L\+OC, means that there is available slot, but not allocated. so, You may create new Ecore\+\_\+\+Buffer, and then just enqueue the Ecore\+\_\+\+Buffer.\end{DoxyItemize}
\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_ga34ecaba7812ce93614e6d20bc2501620}{ecore\+\_\+buffer\+\_\+new()}}, \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue()}} 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}\label{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue@{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue}}
\index{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue@{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue()}{ecore\_buffer\_provider\_buffer\_enqueue()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} \mbox{\hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool}} ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer}} $\ast$}]{buffer }\end{DoxyParamCaption})}



Submits the Ecore\+\_\+\+Buffer to Consumer to request compositing. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider connected with consumer. \\
\hline
\mbox{\tt in}  & {\em buffer} & The Ecore\+\_\+\+Buffer to submit\\
\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}
This function allow you to submit the Ecore\+\_\+\+Buffer to consumer to request compositing. And this will be success, in case only you submit dequeued Ecore\+\_\+\+Buffer, and new Ecore\+\_\+\+Buffer after received return value of E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+N\+E\+E\+D\+\_\+\+A\+L\+L\+OC by \mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire()}}.

\begin{DoxySeeAlso}{See also}
\mbox{\hyperlink{group__Ecore__Buffer__Lib__Group_ga34ecaba7812ce93614e6d20bc2501620}{ecore\+\_\+buffer\+\_\+new()}}, ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+dequeue() 
\end{DoxySeeAlso}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}\label{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check@{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check}}
\index{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check@{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check()}{ecore\_buffer\_provider\_buffer\_acquirable\_check()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} Ecore\+\_\+\+Buffer\+\_\+\+Return ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider }\end{DoxyParamCaption})}



Checks if state of queue. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider to query\\
\hline
\end{DoxyParams}
\begin{DoxyItemize}
\item E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+N\+O\+T\+\_\+\+E\+M\+P\+TY, means there is a dequeueable Ecore\+\_\+\+Buffer at least one. \item E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+E\+M\+P\+TY, means queue is empty, not available slot in Queue. in other words, there is no free drawable buffer in Queue. \item E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+N\+E\+E\+D\+\_\+\+A\+L\+L\+OC, means that there is available slot, but not allocated. so, You may create new Ecore\+\_\+\+Buffer, and then just enqueue the Ecore\+\_\+\+Buffer.\end{DoxyItemize}
\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}
\mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}\label{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set}}
\index{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set()}{ecore\_buffer\_provider\_consumer\_add\_cb\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Sets a callback for consumer connection events. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider 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\+\_\+\+Provider, causing {\ttfamily func} to be called whenever {\ttfamily provider} is connected with consumer. \mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}\label{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set}}
\index{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set()}{ecore\_buffer\_provider\_consumer\_del\_cb\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Sets a callback for consumer disconnection events. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider 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\+\_\+\+Provider, causing {\ttfamily func} to be called whenever {\ttfamily provider} is disconnected with consumer. \mbox{\Hypertarget{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}\label{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}} 
\index{Ecore Buffer Provider functions@{Ecore Buffer Provider functions}!ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set}}
\index{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set@{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set}!Ecore Buffer Provider functions@{Ecore Buffer Provider functions}}
\subsubsection{\texorpdfstring{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set()}{ecore\_buffer\_provider\_buffer\_released\_cb\_set()}}
{\footnotesize\ttfamily \mbox{\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+PI}} void ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider}} $\ast$}]{provider,  }\item[{\mbox{\hyperlink{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}}}]{func,  }\item[{void $\ast$}]{data }\end{DoxyParamCaption})}



Sets a callback for released buffer events. 

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

\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em provider} & The Ecore\+\_\+\+Buffer\+\_\+\+Provider 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\+\_\+\+Provider, causing {\ttfamily func} to be called whenever {\ttfamily provider} has received Ecore\+\_\+\+Buffer released from provider.

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