\hypertarget{structbufferevent}{\section{bufferevent Struct Reference}
\label{structbufferevent}\index{bufferevent@{bufferevent}}
}


Shared implementation of a bufferevent.  




{\ttfamily \#include $<$bufferevent\+\_\+struct.\+h$>$}

\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structevent__base}{event\+\_\+base} $\ast$ \hyperlink{structbufferevent_a9735152492161b861b6169c6edbd6037}{ev\+\_\+base}
\begin{DoxyCompactList}\small\item\em Event base for which this bufferevent was created. \end{DoxyCompactList}\item 
const struct \hyperlink{structbufferevent__ops}{bufferevent\+\_\+ops} $\ast$ \hyperlink{structbufferevent_a522372d770651751ab2071a0e8dfaa32}{be\+\_\+ops}
\begin{DoxyCompactList}\small\item\em Pointer to a table of function pointers to set up how this bufferevent behaves. \end{DoxyCompactList}\item 
struct \hyperlink{structevent}{event} \hyperlink{structbufferevent_a497642944c3095cededb761645ad51d2}{ev\+\_\+read}
\begin{DoxyCompactList}\small\item\em A read event that triggers when a timeout has happened or a socket is ready to read data. \end{DoxyCompactList}\item 
struct \hyperlink{structevent}{event} \hyperlink{structbufferevent_a4730441e65e9e20f48ba93c14dceb2a8}{ev\+\_\+write}
\begin{DoxyCompactList}\small\item\em A write event that triggers when a timeout has happened or a socket is ready to write data. \end{DoxyCompactList}\item 
struct \hyperlink{structevbuffer}{evbuffer} $\ast$ \hyperlink{structbufferevent_a6a227bd55ce594702f1e82f164cab664}{input}
\begin{DoxyCompactList}\small\item\em An input buffer. \end{DoxyCompactList}\item 
struct \hyperlink{structevbuffer}{evbuffer} $\ast$ \hyperlink{structbufferevent_ad357dc74990f5d56a405894e3b36cf45}{output}
\begin{DoxyCompactList}\small\item\em An input buffer. \end{DoxyCompactList}\item 
\hypertarget{structbufferevent_aa26b7388c0f4fd420a85cf0c6a0f83c4}{struct \hyperlink{structevent__watermark}{event\+\_\+watermark} {\bfseries wm\+\_\+read}}\label{structbufferevent_aa26b7388c0f4fd420a85cf0c6a0f83c4}

\item 
\hypertarget{structbufferevent_a22aba3526a7e43a73ef948c7f24bd71a}{struct \hyperlink{structevent__watermark}{event\+\_\+watermark} {\bfseries wm\+\_\+write}}\label{structbufferevent_a22aba3526a7e43a73ef948c7f24bd71a}

\item 
\hypertarget{structbufferevent_a032ca3001d9809049a3a8846cd5e37f9}{\hyperlink{bufferevent_8h_a75e8fa059136e13c04c237e9c03cdbe8}{bufferevent\+\_\+data\+\_\+cb} {\bfseries readcb}}\label{structbufferevent_a032ca3001d9809049a3a8846cd5e37f9}

\item 
\hypertarget{structbufferevent_a69057249ef848c5e52bdc04b5254af58}{\hyperlink{bufferevent_8h_a75e8fa059136e13c04c237e9c03cdbe8}{bufferevent\+\_\+data\+\_\+cb} {\bfseries writecb}}\label{structbufferevent_a69057249ef848c5e52bdc04b5254af58}

\item 
\hypertarget{structbufferevent_a371e5319c4351c19a14cc4fa028b54bb}{\hyperlink{bufferevent_8h_a79b5f4b983f8e67005416738c6494ac6}{bufferevent\+\_\+event\+\_\+cb} {\bfseries errorcb}}\label{structbufferevent_a371e5319c4351c19a14cc4fa028b54bb}

\item 
\hypertarget{structbufferevent_aad8f12bff2435e0591a8fc9db189fda5}{void $\ast$ {\bfseries cbarg}}\label{structbufferevent_aad8f12bff2435e0591a8fc9db189fda5}

\item 
\hypertarget{structbufferevent_a3f875a47a99bf7239ba9fea15d632bdf}{struct timeval {\bfseries timeout\+\_\+read}}\label{structbufferevent_a3f875a47a99bf7239ba9fea15d632bdf}

\item 
\hypertarget{structbufferevent_ad063c82b762d77fe2bac828b2418c3a4}{struct timeval {\bfseries timeout\+\_\+write}}\label{structbufferevent_ad063c82b762d77fe2bac828b2418c3a4}

\item 
short \hyperlink{structbufferevent_a0d22078660fb6b0c14a455097c402f18}{enabled}
\begin{DoxyCompactList}\small\item\em Events that are currently enabled\+: currently E\+V\+\_\+\+R\+E\+A\+D and E\+V\+\_\+\+W\+R\+I\+T\+E are supported. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Shared implementation of a bufferevent. 

This type is exposed only because it was exposed in previous versions, and some people's code may rely on manipulating it. Otherwise, you should really not rely on the layout, size, or contents of this structure\+: it is fairly volatile, and W\+I\+L\+L change in future versions of the code. 

\subsection{Field Documentation}
\hypertarget{structbufferevent_a522372d770651751ab2071a0e8dfaa32}{\index{bufferevent@{bufferevent}!be\+\_\+ops@{be\+\_\+ops}}
\index{be\+\_\+ops@{be\+\_\+ops}!bufferevent@{bufferevent}}
\subsubsection[{be\+\_\+ops}]{\setlength{\rightskip}{0pt plus 5cm}const struct {\bf bufferevent\+\_\+ops}$\ast$ bufferevent\+::be\+\_\+ops}}\label{structbufferevent_a522372d770651751ab2071a0e8dfaa32}


Pointer to a table of function pointers to set up how this bufferevent behaves. 



Referenced by bufferevent\+\_\+base\+\_\+set(), bufferevent\+\_\+disable(), bufferevent\+\_\+enable(), bufferevent\+\_\+flush(), bufferevent\+\_\+get\+\_\+underlying(), bufferevent\+\_\+getfd(), bufferevent\+\_\+priority\+\_\+set(), bufferevent\+\_\+set\+\_\+timeouts(), and bufferevent\+\_\+setfd().

\hypertarget{structbufferevent_a0d22078660fb6b0c14a455097c402f18}{\index{bufferevent@{bufferevent}!enabled@{enabled}}
\index{enabled@{enabled}!bufferevent@{bufferevent}}
\subsubsection[{enabled}]{\setlength{\rightskip}{0pt plus 5cm}short bufferevent\+::enabled}}\label{structbufferevent_a0d22078660fb6b0c14a455097c402f18}


Events that are currently enabled\+: currently E\+V\+\_\+\+R\+E\+A\+D and E\+V\+\_\+\+W\+R\+I\+T\+E are supported. 



Referenced by bufferevent\+\_\+disable(), bufferevent\+\_\+enable(), and bufferevent\+\_\+get\+\_\+enabled().

\hypertarget{structbufferevent_a9735152492161b861b6169c6edbd6037}{\index{bufferevent@{bufferevent}!ev\+\_\+base@{ev\+\_\+base}}
\index{ev\+\_\+base@{ev\+\_\+base}!bufferevent@{bufferevent}}
\subsubsection[{ev\+\_\+base}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf event\+\_\+base}$\ast$ bufferevent\+::ev\+\_\+base}}\label{structbufferevent_a9735152492161b861b6169c6edbd6037}


Event base for which this bufferevent was created. 



Referenced by bufferevent\+\_\+add\+\_\+to\+\_\+rate\+\_\+limit\+\_\+group(), bufferevent\+\_\+base\+\_\+set(), bufferevent\+\_\+filter\+\_\+new(), bufferevent\+\_\+get\+\_\+base(), bufferevent\+\_\+set\+\_\+rate\+\_\+limit(), bufferevent\+\_\+socket\+\_\+connect(), and bufferevent\+\_\+socket\+\_\+new().

\hypertarget{structbufferevent_a497642944c3095cededb761645ad51d2}{\index{bufferevent@{bufferevent}!ev\+\_\+read@{ev\+\_\+read}}
\index{ev\+\_\+read@{ev\+\_\+read}!bufferevent@{bufferevent}}
\subsubsection[{ev\+\_\+read}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf event} bufferevent\+::ev\+\_\+read}}\label{structbufferevent_a497642944c3095cededb761645ad51d2}


A read event that triggers when a timeout has happened or a socket is ready to read data. 

Only used by some subtypes of bufferevent. 

Referenced by bufferevent\+\_\+base\+\_\+set(), bufferevent\+\_\+priority\+\_\+set(), and bufferevent\+\_\+socket\+\_\+new().

\hypertarget{structbufferevent_a4730441e65e9e20f48ba93c14dceb2a8}{\index{bufferevent@{bufferevent}!ev\+\_\+write@{ev\+\_\+write}}
\index{ev\+\_\+write@{ev\+\_\+write}!bufferevent@{bufferevent}}
\subsubsection[{ev\+\_\+write}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf event} bufferevent\+::ev\+\_\+write}}\label{structbufferevent_a4730441e65e9e20f48ba93c14dceb2a8}


A write event that triggers when a timeout has happened or a socket is ready to write data. 

Only used by some subtypes of bufferevent. 

Referenced by bufferevent\+\_\+base\+\_\+set(), bufferevent\+\_\+priority\+\_\+set(), bufferevent\+\_\+socket\+\_\+connect(), and bufferevent\+\_\+socket\+\_\+new().

\hypertarget{structbufferevent_a6a227bd55ce594702f1e82f164cab664}{\index{bufferevent@{bufferevent}!input@{input}}
\index{input@{input}!bufferevent@{bufferevent}}
\subsubsection[{input}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf evbuffer}$\ast$ bufferevent\+::input}}\label{structbufferevent_a6a227bd55ce594702f1e82f164cab664}


An input buffer. 

Only the bufferevent is allowed to add data to this buffer, though the user is allowed to drain it. 

Referenced by bufferevent\+\_\+get\+\_\+input(), bufferevent\+\_\+read(), bufferevent\+\_\+read\+\_\+buffer(), bufferevent\+\_\+setwatermark(), and bufferevent\+\_\+socket\+\_\+new().

\hypertarget{structbufferevent_ad357dc74990f5d56a405894e3b36cf45}{\index{bufferevent@{bufferevent}!output@{output}}
\index{output@{output}!bufferevent@{bufferevent}}
\subsubsection[{output}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf evbuffer}$\ast$ bufferevent\+::output}}\label{structbufferevent_ad357dc74990f5d56a405894e3b36cf45}


An input buffer. 

Only the bufferevent is allowed to drain data from this buffer, though the user is allowed to add it. 

Referenced by bufferevent\+\_\+get\+\_\+output(), bufferevent\+\_\+socket\+\_\+new(), bufferevent\+\_\+write(), and bufferevent\+\_\+write\+\_\+buffer().



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
opal/mca/event/libevent2013/libevent/include/event2/\hyperlink{bufferevent__struct_8h}{bufferevent\+\_\+struct.\+h}\end{DoxyCompactItemize}
