librsync  2.0.2
whole.md
1 # Whole-file API {#api_whole}
2 
3 Some applications do not require the fine-grained control over IO, but
4 rather just want to process a whole file with a single call.
5 librsync provides whole-file APIs to do exactly that.
6 
7 These functions open files, process the entire contents, and return an
8 overall result. The whole-file operations are the core of the
9 \ref rdiff program.
10 
11 Processing of a whole file begins with creation of a ::rs_job_t
12 object for the appropriate operation, just as if the application was
13 going to do buffering itself. After creation, the job may be passed
14 to rs_whole_run(), which will feed it to and from two FILEs as
15 necessary until end of file is reached or the operation completes.
16 
17 \see rs_sig_file()
18 \see rs_loadsig_file()
19 \see rs_mdfour_file()
20 \see rs_delta_file()
21 \see rs_patch_file()
22 
23 \see api_streaming
struct rs_job rs_job_t
Job of work to be done.
Definition: librsync.h:347
rs_result rs_delta_file(rs_signature_t *, FILE *new_file, FILE *delta_file, rs_stats_t *)
Generate a delta between a signature and a new file into a delta file.
Definition: whole.c:129
rs_result rs_loadsig_file(FILE *sig_file, rs_signature_t **sumset, rs_stats_t *stats)
Load signatures from a signature file into memory.
Definition: whole.c:111
rs_result rs_sig_file(FILE *old_file, FILE *sig_file, size_t block_len, size_t strong_len, rs_magic_number sig_magic, rs_stats_t *stats)
Generate the signature of a basis file, and write it out to another.
Definition: whole.c:93
rs_result rs_patch_file(FILE *basis_file, FILE *delta_file, FILE *new_file, rs_stats_t *)
Apply a patch, relative to a basis, into a new file.
Definition: whole.c:145