\doxysubsection{buf.\+h File Reference}
\label{buf_8h}\index{buf.h@{buf.h}}


Buffers that map between stdio file streams and librsync streams.  


Include dependency graph for buf.\+h\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{buf_8h__incl}
\end{center}
\end{figure}
This graph shows which files directly or indirectly include this file\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=156pt]{buf_8h__dep__incl}
\end{center}
\end{figure}
\doxysubsubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef struct \mbox{\hyperlink{structrs__filebuf}{rs\+\_\+filebuf}} \mbox{\hyperlink{buf_8h_aa63f18e52e4f1ec7c2992586e4d5fc0d}{rs\+\_\+filebuf\+\_\+t}}
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{structrs__filebuf}{rs\+\_\+filebuf\+\_\+t}} $\ast$ \mbox{\hyperlink{buf_8h_a5bebdf459784529e1fbf406329f21688}{rs\+\_\+filebuf\+\_\+new}} (FILE $\ast$f, size\+\_\+t buf\+\_\+len)
\item 
void \mbox{\hyperlink{buf_8h_aded00ad7bc7680c37da5634b03cb57df}{rs\+\_\+filebuf\+\_\+free}} (\mbox{\hyperlink{structrs__filebuf}{rs\+\_\+filebuf\+\_\+t}} $\ast$fb)
\item 
\mbox{\hyperlink{librsync_8h_a7feb858ceba3b8f3cf048d49be108253}{rs\+\_\+result}} \mbox{\hyperlink{buf_8h_a5353f439325fb75d59031454124c4ce8}{rs\+\_\+infilebuf\+\_\+fill}} (\mbox{\hyperlink{librsync_8h_add6622b38e3fa557301a190876d5ed4a}{rs\+\_\+job\+\_\+t}} $\ast$, \mbox{\hyperlink{librsync_8h_abf9f543dbfe5c1e60c8ed1c93d087767}{rs\+\_\+buffers\+\_\+t}} $\ast$buf, void $\ast$fb)
\item 
\mbox{\hyperlink{librsync_8h_a7feb858ceba3b8f3cf048d49be108253}{rs\+\_\+result}} \mbox{\hyperlink{buf_8h_a95629a3e2b79ed7d37b4a03ba0dd3bca}{rs\+\_\+outfilebuf\+\_\+drain}} (\mbox{\hyperlink{librsync_8h_add6622b38e3fa557301a190876d5ed4a}{rs\+\_\+job\+\_\+t}} $\ast$, \mbox{\hyperlink{librsync_8h_abf9f543dbfe5c1e60c8ed1c93d087767}{rs\+\_\+buffers\+\_\+t}} $\ast$, void $\ast$fb)
\end{DoxyCompactItemize}


\doxysubsubsection{Detailed Description}
Buffers that map between stdio file streams and librsync streams. 

As the stream consumes input and produces output, it is refilled from appropriate input and output FILEs. A dynamically allocated buffer of configurable size is used as an intermediary.

\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000001}{Todo}}]Perhaps be more efficient by filling the buffer on every call even if not yet completely empty. Check that it\textquotesingle{}s really our buffer, and shuffle remaining data down to the front.\end{DoxyRefDesc}


\begin{DoxyRefDesc}{Todo}
\item[\mbox{\hyperlink{todo__todo000002}{Todo}}]Perhaps expose a routine for shuffling the buffers. \end{DoxyRefDesc}


Definition in file \mbox{\hyperlink{buf_8h_source}{buf.\+h}}.



\doxysubsubsection{Typedef Documentation}
\mbox{\label{buf_8h_aa63f18e52e4f1ec7c2992586e4d5fc0d}} 
\index{buf.h@{buf.h}!rs\_filebuf\_t@{rs\_filebuf\_t}}
\index{rs\_filebuf\_t@{rs\_filebuf\_t}!buf.h@{buf.h}}
\doxyparagraph{\texorpdfstring{rs\_filebuf\_t}{rs\_filebuf\_t}}
{\footnotesize\ttfamily typedef struct \mbox{\hyperlink{structrs__filebuf}{rs\+\_\+filebuf}} \mbox{\hyperlink{structrs__filebuf}{rs\+\_\+filebuf\+\_\+t}}}



Definition at line \mbox{\hyperlink{buf_8h_source_l00040}{40}} of file \mbox{\hyperlink{buf_8h_source}{buf.\+h}}.



\doxysubsubsection{Function Documentation}
\mbox{\label{buf_8h_a5bebdf459784529e1fbf406329f21688}} 
\index{buf.h@{buf.h}!rs\_filebuf\_new@{rs\_filebuf\_new}}
\index{rs\_filebuf\_new@{rs\_filebuf\_new}!buf.h@{buf.h}}
\doxyparagraph{\texorpdfstring{rs\_filebuf\_new()}{rs\_filebuf\_new()}}
{\footnotesize\ttfamily \mbox{\hyperlink{structrs__filebuf}{rs\+\_\+filebuf\+\_\+t}} $\ast$ rs\+\_\+filebuf\+\_\+new (\begin{DoxyParamCaption}\item[{FILE $\ast$}]{f,  }\item[{size\+\_\+t}]{buf\+\_\+len }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{buf_8c_source_l00043}{43}} of file \mbox{\hyperlink{buf_8c_source}{buf.\+c}}.

\mbox{\label{buf_8h_aded00ad7bc7680c37da5634b03cb57df}} 
\index{buf.h@{buf.h}!rs\_filebuf\_free@{rs\_filebuf\_free}}
\index{rs\_filebuf\_free@{rs\_filebuf\_free}!buf.h@{buf.h}}
\doxyparagraph{\texorpdfstring{rs\_filebuf\_free()}{rs\_filebuf\_free()}}
{\footnotesize\ttfamily void rs\+\_\+filebuf\+\_\+free (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{structrs__filebuf}{rs\+\_\+filebuf\+\_\+t}} $\ast$}]{fb }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{buf_8c_source_l00053}{53}} of file \mbox{\hyperlink{buf_8c_source}{buf.\+c}}.

\mbox{\label{buf_8h_a5353f439325fb75d59031454124c4ce8}} 
\index{buf.h@{buf.h}!rs\_infilebuf\_fill@{rs\_infilebuf\_fill}}
\index{rs\_infilebuf\_fill@{rs\_infilebuf\_fill}!buf.h@{buf.h}}
\doxyparagraph{\texorpdfstring{rs\_infilebuf\_fill()}{rs\_infilebuf\_fill()}}
{\footnotesize\ttfamily \mbox{\hyperlink{librsync_8h_a7feb858ceba3b8f3cf048d49be108253}{rs\+\_\+result}} rs\+\_\+infilebuf\+\_\+fill (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{librsync_8h_add6622b38e3fa557301a190876d5ed4a}{rs\+\_\+job\+\_\+t}} $\ast$}]{job,  }\item[{\mbox{\hyperlink{librsync_8h_abf9f543dbfe5c1e60c8ed1c93d087767}{rs\+\_\+buffers\+\_\+t}} $\ast$}]{buf,  }\item[{void $\ast$}]{fb }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{buf_8c_source_l00063}{63}} of file \mbox{\hyperlink{buf_8c_source}{buf.\+c}}.

\mbox{\label{buf_8h_a95629a3e2b79ed7d37b4a03ba0dd3bca}} 
\index{buf.h@{buf.h}!rs\_outfilebuf\_drain@{rs\_outfilebuf\_drain}}
\index{rs\_outfilebuf\_drain@{rs\_outfilebuf\_drain}!buf.h@{buf.h}}
\doxyparagraph{\texorpdfstring{rs\_outfilebuf\_drain()}{rs\_outfilebuf\_drain()}}
{\footnotesize\ttfamily \mbox{\hyperlink{librsync_8h_a7feb858ceba3b8f3cf048d49be108253}{rs\+\_\+result}} rs\+\_\+outfilebuf\+\_\+drain (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{librsync_8h_add6622b38e3fa557301a190876d5ed4a}{rs\+\_\+job\+\_\+t}} $\ast$}]{job,  }\item[{\mbox{\hyperlink{librsync_8h_abf9f543dbfe5c1e60c8ed1c93d087767}{rs\+\_\+buffers\+\_\+t}} $\ast$}]{buf,  }\item[{void $\ast$}]{fb }\end{DoxyParamCaption})}



Definition at line \mbox{\hyperlink{buf_8c_source_l00103}{103}} of file \mbox{\hyperlink{buf_8c_source}{buf.\+c}}.

