$treeview $search $mathjax $extrastylesheet
librsync  2.3.0
$projectbrief
$projectbrief
$searchbox

buf.c File Reference

Buffers that map between stdio file streams and librsync streams. More...

Go to the source code of this file.

Data Structures

struct  rs_filebuf

Functions

rs_filebuf_trs_filebuf_new (FILE *f, size_t buf_len)
void rs_filebuf_free (rs_filebuf_t *fb)
rs_result rs_infilebuf_fill (rs_job_t *job, rs_buffers_t *buf, void *opaque)
rs_result rs_outfilebuf_drain (rs_job_t *job, rs_buffers_t *buf, void *opaque)

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.

Todo:
Perhaps be more efficient by filling the buffer on every call even if not yet completely empty. Check that it's really our buffer, and shuffle remaining data down to the front.
Todo:
Perhaps expose a routine for shuffling the buffers.

Definition in file buf.c.