\hypertarget{structbufferevent__private}{\section{bufferevent\+\_\+private Struct Reference}
\label{structbufferevent__private}\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}}
}


Parts of the bufferevent structure that are shared among all bufferevent types, but not exposed in \hyperlink{bufferevent__struct_8h}{bufferevent\+\_\+struct.\+h}.  




{\ttfamily \#include $<$bufferevent-\/internal.\+h$>$}

\subsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structbufferevent}{bufferevent} \hyperlink{structbufferevent__private_a7d793f0632346c32119b818783b97c41}{bev}
\begin{DoxyCompactList}\small\item\em The underlying bufferevent structure. \end{DoxyCompactList}\item 
struct \hyperlink{structevbuffer__cb__entry}{evbuffer\+\_\+cb\+\_\+entry} $\ast$ \hyperlink{structbufferevent__private_a51001658bb2998fafae9e9903cbe464b}{read\+\_\+watermarks\+\_\+cb}
\begin{DoxyCompactList}\small\item\em Evbuffer callback to enforce watermarks on input. \end{DoxyCompactList}\item 
unsigned \hyperlink{structbufferevent__private_a01390481d352523c7c3d2794058c4ee5}{own\+\_\+lock}\+: 1
\begin{DoxyCompactList}\small\item\em If set, we should free the lock when we free the bufferevent. \end{DoxyCompactList}\item 
unsigned \hyperlink{structbufferevent__private_a885b722ca0b35d6b4676f6324850852e}{readcb\+\_\+pending}\+: 1
\begin{DoxyCompactList}\small\item\em Flag\+: set if we have deferred callbacks and a read callback is pending. \end{DoxyCompactList}\item 
unsigned \hyperlink{structbufferevent__private_a913a02ff117fb47b65bf7954c316fd15}{writecb\+\_\+pending}\+: 1
\begin{DoxyCompactList}\small\item\em Flag\+: set if we have deferred callbacks and a write callback is pending. \end{DoxyCompactList}\item 
unsigned \hyperlink{structbufferevent__private_a119a53a901eba97bb5efc8a992366c14}{connecting}\+: 1
\begin{DoxyCompactList}\small\item\em Flag\+: set if we are currently busy connecting. \end{DoxyCompactList}\item 
unsigned \hyperlink{structbufferevent__private_a7be15215807fd6c109ee15993704c708}{connection\+\_\+refused}\+: 1
\begin{DoxyCompactList}\small\item\em Flag\+: set if a connect failed prematurely; this is a hack for getting around the bufferevent abstraction. \end{DoxyCompactList}\item 
short \hyperlink{structbufferevent__private_a0dc2f51a3a64b8acbf325f4d436be2af}{eventcb\+\_\+pending}
\begin{DoxyCompactList}\small\item\em Set to the events pending if we have deferred callbacks and an events callback is pending. \end{DoxyCompactList}\item 
bufferevent\+\_\+suspend\+\_\+flags \hyperlink{structbufferevent__private_a666a020bf0b6d0fc0a20715dbc0d502e}{read\+\_\+suspended}
\begin{DoxyCompactList}\small\item\em If set, read is suspended until one or more conditions are over. \end{DoxyCompactList}\item 
bufferevent\+\_\+suspend\+\_\+flags \hyperlink{structbufferevent__private_a0d39c067a6092f2db779aa22f22ddd8b}{write\+\_\+suspended}
\begin{DoxyCompactList}\small\item\em If set, writing is suspended until one or more conditions are over. \end{DoxyCompactList}\item 
int \hyperlink{structbufferevent__private_a891f4b4c0c212e61a96d9113d881f099}{errno\+\_\+pending}
\begin{DoxyCompactList}\small\item\em Set to the current socket errno if we have deferred callbacks and an events callback is pending. \end{DoxyCompactList}\item 
\hypertarget{structbufferevent__private_a8a68f7d6334619c68128db83b2c9e268}{int \hyperlink{structbufferevent__private_a8a68f7d6334619c68128db83b2c9e268}{dns\+\_\+error}}\label{structbufferevent__private_a8a68f7d6334619c68128db83b2c9e268}

\begin{DoxyCompactList}\small\item\em The D\+N\+S error code for bufferevent\+\_\+socket\+\_\+connect\+\_\+hostname. \end{DoxyCompactList}\item 
\hypertarget{structbufferevent__private_a434ca77c97c90c6efa29fdda06a65b8d}{struct \hyperlink{structdeferred__cb}{deferred\+\_\+cb} \hyperlink{structbufferevent__private_a434ca77c97c90c6efa29fdda06a65b8d}{deferred}}\label{structbufferevent__private_a434ca77c97c90c6efa29fdda06a65b8d}

\begin{DoxyCompactList}\small\item\em Used to implement deferred callbacks. \end{DoxyCompactList}\item 
\hypertarget{structbufferevent__private_a68f017fa842099067e2eea7236a903de}{enum \hyperlink{bufferevent_8h_aa4919449c62c6483e2d135509190dc65}{bufferevent\+\_\+options} \hyperlink{structbufferevent__private_a68f017fa842099067e2eea7236a903de}{options}}\label{structbufferevent__private_a68f017fa842099067e2eea7236a903de}

\begin{DoxyCompactList}\small\item\em The options this bufferevent was constructed with. \end{DoxyCompactList}\item 
int \hyperlink{structbufferevent__private_a3b88690c4b672f7f6cb437ac4027fe7e}{refcnt}
\begin{DoxyCompactList}\small\item\em Current reference count for this bufferevent. \end{DoxyCompactList}\item 
void $\ast$ \hyperlink{structbufferevent__private_ac048122e383e38e5774c90675871d160}{lock}
\begin{DoxyCompactList}\small\item\em Lock for this bufferevent. \end{DoxyCompactList}\item 
\hypertarget{structbufferevent__private_a4431ae35ad587a64c9f557c4bad3fae3}{struct \hyperlink{structbufferevent__rate__limit}{bufferevent\+\_\+rate\+\_\+limit} $\ast$ \hyperlink{structbufferevent__private_a4431ae35ad587a64c9f557c4bad3fae3}{rate\+\_\+limiting}}\label{structbufferevent__private_a4431ae35ad587a64c9f557c4bad3fae3}

\begin{DoxyCompactList}\small\item\em Rate-\/limiting information for this bufferevent. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Parts of the bufferevent structure that are shared among all bufferevent types, but not exposed in \hyperlink{bufferevent__struct_8h}{bufferevent\+\_\+struct.\+h}. 



\subsection{Field Documentation}
\hypertarget{structbufferevent__private_a7d793f0632346c32119b818783b97c41}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!bev@{bev}}
\index{bev@{bev}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{bev}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf bufferevent} bufferevent\+\_\+private\+::bev}}\label{structbufferevent__private_a7d793f0632346c32119b818783b97c41}


The underlying bufferevent structure. 



Referenced by bufferevent\+\_\+enable(), bufferevent\+\_\+setwatermark(), and bufferevent\+\_\+socket\+\_\+new().

\hypertarget{structbufferevent__private_a119a53a901eba97bb5efc8a992366c14}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!connecting@{connecting}}
\index{connecting@{connecting}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{connecting}]{\setlength{\rightskip}{0pt plus 5cm}unsigned bufferevent\+\_\+private\+::connecting}}\label{structbufferevent__private_a119a53a901eba97bb5efc8a992366c14}


Flag\+: set if we are currently busy connecting. 



Referenced by bufferevent\+\_\+socket\+\_\+connect().

\hypertarget{structbufferevent__private_a7be15215807fd6c109ee15993704c708}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!connection\+\_\+refused@{connection\+\_\+refused}}
\index{connection\+\_\+refused@{connection\+\_\+refused}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{connection\+\_\+refused}]{\setlength{\rightskip}{0pt plus 5cm}unsigned bufferevent\+\_\+private\+::connection\+\_\+refused}}\label{structbufferevent__private_a7be15215807fd6c109ee15993704c708}


Flag\+: set if a connect failed prematurely; this is a hack for getting around the bufferevent abstraction. 



Referenced by bufferevent\+\_\+socket\+\_\+connect().

\hypertarget{structbufferevent__private_a891f4b4c0c212e61a96d9113d881f099}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!errno\+\_\+pending@{errno\+\_\+pending}}
\index{errno\+\_\+pending@{errno\+\_\+pending}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{errno\+\_\+pending}]{\setlength{\rightskip}{0pt plus 5cm}int bufferevent\+\_\+private\+::errno\+\_\+pending}}\label{structbufferevent__private_a891f4b4c0c212e61a96d9113d881f099}


Set to the current socket errno if we have deferred callbacks and an events callback is pending. 

\hypertarget{structbufferevent__private_a0dc2f51a3a64b8acbf325f4d436be2af}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!eventcb\+\_\+pending@{eventcb\+\_\+pending}}
\index{eventcb\+\_\+pending@{eventcb\+\_\+pending}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{eventcb\+\_\+pending}]{\setlength{\rightskip}{0pt plus 5cm}short bufferevent\+\_\+private\+::eventcb\+\_\+pending}}\label{structbufferevent__private_a0dc2f51a3a64b8acbf325f4d436be2af}


Set to the events pending if we have deferred callbacks and an events callback is pending. 

\hypertarget{structbufferevent__private_ac048122e383e38e5774c90675871d160}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!lock@{lock}}
\index{lock@{lock}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{lock}]{\setlength{\rightskip}{0pt plus 5cm}void$\ast$ bufferevent\+\_\+private\+::lock}}\label{structbufferevent__private_ac048122e383e38e5774c90675871d160}


Lock for this bufferevent. 

Shared by the inbuf and the outbuf. If N\+U\+L\+L, locking is disabled. 

Referenced by bufferevent\+\_\+pair\+\_\+new().

\hypertarget{structbufferevent__private_a01390481d352523c7c3d2794058c4ee5}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!own\+\_\+lock@{own\+\_\+lock}}
\index{own\+\_\+lock@{own\+\_\+lock}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{own\+\_\+lock}]{\setlength{\rightskip}{0pt plus 5cm}unsigned bufferevent\+\_\+private\+::own\+\_\+lock}}\label{structbufferevent__private_a01390481d352523c7c3d2794058c4ee5}


If set, we should free the lock when we free the bufferevent. 

\hypertarget{structbufferevent__private_a666a020bf0b6d0fc0a20715dbc0d502e}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!read\+\_\+suspended@{read\+\_\+suspended}}
\index{read\+\_\+suspended@{read\+\_\+suspended}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{read\+\_\+suspended}]{\setlength{\rightskip}{0pt plus 5cm}bufferevent\+\_\+suspend\+\_\+flags bufferevent\+\_\+private\+::read\+\_\+suspended}}\label{structbufferevent__private_a666a020bf0b6d0fc0a20715dbc0d502e}


If set, read is suspended until one or more conditions are over. 

The actual value here is a bitfield of those conditions; see the B\+E\+V\+\_\+\+S\+U\+S\+P\+E\+N\+D\+\_\+$\ast$ flags above. 

Referenced by bufferevent\+\_\+enable().

\hypertarget{structbufferevent__private_a51001658bb2998fafae9e9903cbe464b}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!read\+\_\+watermarks\+\_\+cb@{read\+\_\+watermarks\+\_\+cb}}
\index{read\+\_\+watermarks\+\_\+cb@{read\+\_\+watermarks\+\_\+cb}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{read\+\_\+watermarks\+\_\+cb}]{\setlength{\rightskip}{0pt plus 5cm}struct {\bf evbuffer\+\_\+cb\+\_\+entry}$\ast$ bufferevent\+\_\+private\+::read\+\_\+watermarks\+\_\+cb}}\label{structbufferevent__private_a51001658bb2998fafae9e9903cbe464b}


Evbuffer callback to enforce watermarks on input. 



Referenced by bufferevent\+\_\+setwatermark().

\hypertarget{structbufferevent__private_a885b722ca0b35d6b4676f6324850852e}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!readcb\+\_\+pending@{readcb\+\_\+pending}}
\index{readcb\+\_\+pending@{readcb\+\_\+pending}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{readcb\+\_\+pending}]{\setlength{\rightskip}{0pt plus 5cm}unsigned bufferevent\+\_\+private\+::readcb\+\_\+pending}}\label{structbufferevent__private_a885b722ca0b35d6b4676f6324850852e}


Flag\+: set if we have deferred callbacks and a read callback is pending. 

\hypertarget{structbufferevent__private_a3b88690c4b672f7f6cb437ac4027fe7e}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!refcnt@{refcnt}}
\index{refcnt@{refcnt}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{refcnt}]{\setlength{\rightskip}{0pt plus 5cm}int bufferevent\+\_\+private\+::refcnt}}\label{structbufferevent__private_a3b88690c4b672f7f6cb437ac4027fe7e}


Current reference count for this bufferevent. 

\hypertarget{structbufferevent__private_a0d39c067a6092f2db779aa22f22ddd8b}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!write\+\_\+suspended@{write\+\_\+suspended}}
\index{write\+\_\+suspended@{write\+\_\+suspended}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{write\+\_\+suspended}]{\setlength{\rightskip}{0pt plus 5cm}bufferevent\+\_\+suspend\+\_\+flags bufferevent\+\_\+private\+::write\+\_\+suspended}}\label{structbufferevent__private_a0d39c067a6092f2db779aa22f22ddd8b}


If set, writing is suspended until one or more conditions are over. 

The actual value here is a bitfield of those conditions; see the B\+E\+V\+\_\+\+S\+U\+S\+P\+E\+N\+D\+\_\+$\ast$ flags above. 

Referenced by bufferevent\+\_\+enable().

\hypertarget{structbufferevent__private_a913a02ff117fb47b65bf7954c316fd15}{\index{bufferevent\+\_\+private@{bufferevent\+\_\+private}!writecb\+\_\+pending@{writecb\+\_\+pending}}
\index{writecb\+\_\+pending@{writecb\+\_\+pending}!bufferevent\+\_\+private@{bufferevent\+\_\+private}}
\subsubsection[{writecb\+\_\+pending}]{\setlength{\rightskip}{0pt plus 5cm}unsigned bufferevent\+\_\+private\+::writecb\+\_\+pending}}\label{structbufferevent__private_a913a02ff117fb47b65bf7954c316fd15}


Flag\+: set if we have deferred callbacks and a write callback is pending. 



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