\section{booster\+:\+:aio\+:\+:buffer\+\_\+impl$<$ Pointer $>$ Class Template Reference}
\label{classbooster_1_1aio_1_1buffer__impl}\index{booster\+::aio\+::buffer\+\_\+impl$<$ Pointer $>$@{booster\+::aio\+::buffer\+\_\+impl$<$ Pointer $>$}}


This is a base class that represents a buffer -\/ a set of contiguous chunks of memory that can be transfered over network.  




{\ttfamily \#include $<$booster/booster/aio/buffer.\+h$>$}

\subsection*{Classes}
\begin{DoxyCompactItemize}
\item 
struct {\bf entry}
\end{DoxyCompactItemize}
\subsection*{Public Types}
\begin{DoxyCompactItemize}
\item 
typedef std\+::pair$<$ {\bf entry} const $\ast$, size\+\_\+t $>$ {\bf buffer\+\_\+data\+\_\+type}\label{classbooster_1_1aio_1_1buffer__impl_af62874c2d9d31b2b3de2a1a8ad1021f1}

\begin{DoxyCompactList}\small\item\em A pair that defined the chunk. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
{\bf buffer\+\_\+impl} ()
\item 
std\+::pair$<$ {\bf entry} const $\ast$, size\+\_\+t $>$ {\bf get} () const 
\item 
void {\bf add} (Pointer p, size\+\_\+t s)
\item 
bool {\bf empty} () const 
\item 
size\+\_\+t {\bf size} () const 
\item 
size\+\_\+t {\bf bytes\+\_\+count} () const 
\end{DoxyCompactItemize}


\subsection{Detailed Description}
\subsubsection*{template$<$typename Pointer$>$\\*
class booster\+::aio\+::buffer\+\_\+impl$<$ Pointer $>$}

This is a base class that represents a buffer -\/ a set of contiguous chunks of memory that can be transfered over network. 

The {\itshape Pointer} parameter should be either {\ttfamily char const $\ast$} or {\ttfamily char $\ast$} 

\subsection{Constructor \& Destructor Documentation}
\index{booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}!buffer\+\_\+impl@{buffer\+\_\+impl}}
\index{buffer\+\_\+impl@{buffer\+\_\+impl}!booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}}
\subsubsection[{buffer\+\_\+impl()}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Pointer$>$ {\bf booster\+::aio\+::buffer\+\_\+impl}$<$ Pointer $>$\+::{\bf buffer\+\_\+impl} (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1aio_1_1buffer__impl_adba3a72dbe48a73a1cc7173b224a7a8d}
Create an empty buffer 

\subsection{Member Function Documentation}
\index{booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}!add@{add}}
\index{add@{add}!booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}}
\subsubsection[{add(\+Pointer p, size\+\_\+t s)}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Pointer$>$ void {\bf booster\+::aio\+::buffer\+\_\+impl}$<$ Pointer $>$\+::add (
\begin{DoxyParamCaption}
\item[{Pointer}]{p, }
\item[{size\+\_\+t}]{s}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1aio_1_1buffer__impl_ac60e6ab00fa30929d7174aae1ddd683d}
Append a chunk to the buffer 

Referenced by booster\+::aio\+::buffer(), and booster\+::aio\+::const\+\_\+buffer\+::const\+\_\+buffer().

\index{booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}!bytes\+\_\+count@{bytes\+\_\+count}}
\index{bytes\+\_\+count@{bytes\+\_\+count}!booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}}
\subsubsection[{bytes\+\_\+count() const }]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Pointer$>$ size\+\_\+t {\bf booster\+::aio\+::buffer\+\_\+impl}$<$ Pointer $>$\+::bytes\+\_\+count (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1aio_1_1buffer__impl_ab57dec2dc3eb4abbca0e5e4a3eddd36a}
Get total amount of bytes in the buffer

\doxyref{New in Cpp\+C\+MS 1.\+2}{p.}{v1_2} \index{booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}!empty@{empty}}
\index{empty@{empty}!booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}}
\subsubsection[{empty() const }]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Pointer$>$ bool {\bf booster\+::aio\+::buffer\+\_\+impl}$<$ Pointer $>$\+::empty (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1aio_1_1buffer__impl_a239dddcd9990cb80dfbd1b4e88fdc45e}
Check if the buffer is empty \index{booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}!get@{get}}
\index{get@{get}!booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}}
\subsubsection[{get() const }]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Pointer$>$ std\+::pair$<${\bf entry} const $\ast$,size\+\_\+t$>$ {\bf booster\+::aio\+::buffer\+\_\+impl}$<$ Pointer $>$\+::get (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1aio_1_1buffer__impl_af890c2c31103ae60a44a23d69242345e}
Get a first chunk 

Referenced by booster\+::aio\+::buffer(), and booster\+::aio\+::const\+\_\+buffer\+::const\+\_\+buffer().

\index{booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}!size@{size}}
\index{size@{size}!booster\+::aio\+::buffer\+\_\+impl@{booster\+::aio\+::buffer\+\_\+impl}}
\subsubsection[{size() const }]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename Pointer$>$ size\+\_\+t {\bf booster\+::aio\+::buffer\+\_\+impl}$<$ Pointer $>$\+::size (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily [inline]}}\label{classbooster_1_1aio_1_1buffer__impl_aff278bb6f49b84fcfe974aa0b0c8c21c}
Get size of buffer in number of chunks,i.\+e.

\doxyref{New in Cpp\+C\+MS 1.\+2}{p.}{v1_2} 

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
booster/aio/buffer.\+h\end{DoxyCompactItemize}
