\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 \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$ \hyperlink{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}) (\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$ \hyperlink{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}) (\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$ \hyperlink{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}) (\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 \hyperlink{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return} \{ \\*
{\bfseries E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+E\+R\+R\+O\+R}, 
\\*
{\bfseries E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+S\+U\+C\+C\+E\+S\+S}, 
\\*
{\bfseries E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+E\+M\+P\+T\+Y}, 
\\*
{\bfseries E\+C\+O\+R\+E\+\_\+\+B\+U\+F\+F\+E\+R\+\_\+\+R\+E\+T\+U\+R\+N\+\_\+\+N\+O\+T\+\_\+\+E\+M\+P\+T\+Y}, 
\\*
{\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\+O\+C}
 \}\begin{DoxyCompactList}\small\item\em types for an buffer queue state on provider side. \end{DoxyCompactList}
\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$ \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 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__Buffer__Provider__Group_gade2273c3009a631b03d2f2359f2e61e8}{ecore\+\_\+buffer\+\_\+provider\+\_\+free} (\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$provider)
\begin{DoxyCompactList}\small\item\em Free an Ecore\+\_\+\+Buffer\+\_\+\+Provider. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} Ecore\+\_\+\+Buffer\+\_\+\+Return \hyperlink{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire} (\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$provider, \hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer} $\ast$$\ast$ret\+\_\+buf)
\begin{DoxyCompactList}\small\item\em Return the Ecore\+\_\+\+Buffer released by consumer or State of Queue. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} \hyperlink{group__Eina__Types__Group_ga3fe0caf72e93b1bab1ca8ee3ccf3f226}{Eina\+\_\+\+Bool} \hyperlink{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue} (\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$provider, \hyperlink{group__Ecore__Buffer__Lib__Group_gae42dff4b4a724e8a5d204e00470397eb}{Ecore\+\_\+\+Buffer} $\ast$buffer)
\begin{DoxyCompactList}\small\item\em Submit the Ecore\+\_\+\+Buffer to Consumer to request compositing. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} Ecore\+\_\+\+Buffer\+\_\+\+Return \hyperlink{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check} (\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$provider)
\begin{DoxyCompactList}\small\item\em Check if state of queue. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set} (\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$provider, \hyperlink{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set a callback for consumer connection events. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set} (\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$provider, \hyperlink{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set a callback for consumer disconnection events. \end{DoxyCompactList}\item 
\hyperlink{group__Elua_ga3db3556eec8ef18cb8ddb43816974ac8}{E\+A\+P\+I} void \hyperlink{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set} (\hyperlink{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}{Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$provider, \hyperlink{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb} func, void $\ast$data)
\begin{DoxyCompactList}\small\item\em Set 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}
\hypertarget{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[{Ecore\+\_\+\+Buffer\+\_\+\+Provider}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider}}\label{group__Ecore__Buffer__Provider__Group_ga5c43d75e20b8462e20c317cafa68b1f1}


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

\begin{DoxySince}{Since}
1.\+15 
\end{DoxySince}
\hypertarget{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[{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}]{\setlength{\rightskip}{0pt plus 5cm}Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}\label{group__Ecore__Buffer__Provider__Group_gaa34a39fa6757e01dde71bf093d754eb2}


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

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set()} 
\end{DoxySeeAlso}
\hypertarget{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[{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}]{\setlength{\rightskip}{0pt plus 5cm}Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}\label{group__Ecore__Buffer__Provider__Group_ga62d559e75dbfa0497d43353871324b7f}


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

\begin{DoxySince}{Since}
1.\+15
\end{DoxySince}
\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set()} 
\end{DoxySeeAlso}
\hypertarget{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[{Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}]{\setlength{\rightskip}{0pt plus 5cm}Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}\label{group__Ecore__Buffer__Provider__Group_ga8961641e2210667302307a60a9e9c268}


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

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


\subsection{Enumeration Type Documentation}
\hypertarget{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[{\+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return}]{\setlength{\rightskip}{0pt plus 5cm}enum {\bf \+\_\+\+Ecore\+\_\+\+Buffer\+\_\+\+Return}}\label{group__Ecore__Buffer__Provider__Group_gae5e811ab8123ba74d3ada69148585e05}


types for an buffer queue state on provider side. 

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

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


\subsection{Function Documentation}
\hypertarget{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[{ecore\+\_\+buffer\+\_\+provider\+\_\+new(const char $\ast$name)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider}$\ast$ ecore\+\_\+buffer\+\_\+provider\+\_\+new (
\begin{DoxyParamCaption}
\item[{const char $\ast$}]{name}
\end{DoxyParamCaption}
)}\label{group__Ecore__Buffer__Provider__Group_ga561aa2d1cc9e019d41294dc20d176903}


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\+L\+L} if creation failed. 
\end{DoxyReturn}


References D\+B\+G, and E\+R\+R.

\hypertarget{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[{ecore\+\_\+buffer\+\_\+provider\+\_\+free(\+Ecore\+\_\+\+Buffer\+\_\+\+Provider $\ast$provider)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+buffer\+\_\+provider\+\_\+free (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$}]{provider}
\end{DoxyParamCaption}
)}\label{group__Ecore__Buffer__Provider__Group_gade2273c3009a631b03d2f2359f2e61e8}


Free 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. 

References D\+B\+G, and E\+I\+N\+A\+\_\+\+L\+I\+S\+T\+\_\+\+F\+O\+R\+E\+A\+C\+H.

\hypertarget{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[{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire(\+Ecore\+\_\+\+Buffer\+\_\+\+Provider $\ast$provider, Ecore\+\_\+\+Buffer $\ast$$\ast$ret\+\_\+buf)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} Ecore\+\_\+\+Buffer\+\_\+\+Return ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$}]{provider, }
\item[{{\bf Ecore\+\_\+\+Buffer} $\ast$$\ast$}]{ret\+\_\+buf}
\end{DoxyParamCaption}
)}\label{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}


Return 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 Dequeueing.
\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\+O\+R, 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\+S\+S, 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\+T\+Y, 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\+O\+C, 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}
\hyperlink{group__Ecore__Buffer__Lib__Group_ga34ecaba7812ce93614e6d20bc2501620}{ecore\+\_\+buffer\+\_\+new()}, \hyperlink{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue()} 
\end{DoxySeeAlso}


References D\+B\+G, and E\+R\+R.

\hypertarget{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[{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue(\+Ecore\+\_\+\+Buffer\+\_\+\+Provider $\ast$provider, Ecore\+\_\+\+Buffer $\ast$buffer)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} {\bf Eina\+\_\+\+Bool} ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+enqueue (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$}]{provider, }
\item[{{\bf Ecore\+\_\+\+Buffer} $\ast$}]{buffer}
\end{DoxyParamCaption}
)}\label{group__Ecore__Buffer__Provider__Group_gada2675683b019ba49565c9fbfe14b843}


Submit 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\+U\+E} on success, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} 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\+O\+C by \hyperlink{group__Ecore__Buffer__Provider__Group_ga3dfff092c67ef3f86289659e4f49ef05}{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquire()}.

\begin{DoxySeeAlso}{See also}
\hyperlink{group__Ecore__Buffer__Lib__Group_ga34ecaba7812ce93614e6d20bc2501620}{ecore\+\_\+buffer\+\_\+new()}, ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+dequeue() 
\end{DoxySeeAlso}


References D\+B\+G, E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E, E\+I\+N\+A\+\_\+\+T\+R\+U\+E, and E\+R\+R.

\hypertarget{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[{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check(\+Ecore\+\_\+\+Buffer\+\_\+\+Provider $\ast$provider)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} Ecore\+\_\+\+Buffer\+\_\+\+Return ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+acquirable\+\_\+check (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$}]{provider}
\end{DoxyParamCaption}
)}\label{group__Ecore__Buffer__Provider__Group_ga96fff421d13bfb823ad8891a99be1e97}


Check 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\+T\+Y, 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\+T\+Y, 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\+O\+C, 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\+U\+E} means queue is empty, {\ttfamily E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E} otherwise. 
\end{DoxyReturn}


References E\+I\+N\+A\+\_\+\+F\+A\+L\+S\+E.

\hypertarget{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[{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set(\+Ecore\+\_\+\+Buffer\+\_\+\+Provider $\ast$provider, Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb func, void $\ast$data)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+add\+\_\+cb\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$}]{provider, }
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Add\+\_\+\+Cb}}]{func, }
\item[{void $\ast$}]{data}
\end{DoxyParamCaption}
)}\label{group__Ecore__Buffer__Provider__Group_gaff0332930b6f734a3d77fdab64b47dd9}


Set 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. \hypertarget{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[{ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set(\+Ecore\+\_\+\+Buffer\+\_\+\+Provider $\ast$provider, Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb func, void $\ast$data)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+buffer\+\_\+provider\+\_\+consumer\+\_\+del\+\_\+cb\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$}]{provider, }
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Consumer\+\_\+\+Del\+\_\+\+Cb}}]{func, }
\item[{void $\ast$}]{data}
\end{DoxyParamCaption}
)}\label{group__Ecore__Buffer__Provider__Group_gaa27d4ecbec1da244961bb10b5af9efed}


Set 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. \hypertarget{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[{ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set(\+Ecore\+\_\+\+Buffer\+\_\+\+Provider $\ast$provider, Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb func, void $\ast$data)}]{\setlength{\rightskip}{0pt plus 5cm}{\bf E\+A\+P\+I} void ecore\+\_\+buffer\+\_\+provider\+\_\+buffer\+\_\+released\+\_\+cb\+\_\+set (
\begin{DoxyParamCaption}
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider} $\ast$}]{provider, }
\item[{{\bf Ecore\+\_\+\+Buffer\+\_\+\+Provider\+\_\+\+Enqueue\+\_\+\+Cb}}]{func, }
\item[{void $\ast$}]{data}
\end{DoxyParamCaption}
)}\label{group__Ecore__Buffer__Provider__Group_ga48f9e542bd2893ebcb576ee9c929bb92}


Set 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. 