27 #ifndef GENERIC_RSYNC_HPP 28 #define GENERIC_RSYNC_HPP 30 #include "../my_config.h" 62 U_I signature_block_size,
81 const crc **checksum);
106 virtual bool skippable(skippability direction,
const infinint & amount)
override {
return false; };
107 virtual bool skip(
const infinint & pos)
override {
if(pos != 0 || !initial)
throw SRC_BUG;
else return true; };
109 virtual bool skip_relative(S_I x)
override {
if(x != 0)
throw SRC_BUG;
else return true; };
121 enum { sign,
delta, patch } status;
127 char *working_buffer;
129 bool patching_completed;
132 #if LIBRSYNC_AVAILABLE 134 rs_signature_t *sumset;
137 static rs_result patch_callback(
void *opaque,
generic_file * x_below
underlying layer to read from / write to
generic_rsync(generic_file *signature_storage, U_I signature_block_size, generic_file *below)
constructor for "signature" operation
class generic_file is defined here as well as class fichierthe generic_file interface is widely used ...
virtual infinint get_position() const =0
get the current read/write position
virtual bool skip(const infinint &pos) override
skip at the absolute position
bool step_forward(const char *buffer_in, U_I &avail_in, bool shift_input, char *buffer_out, U_I &avail_out)
feed librsync using rs_job_iter
virtual void inherited_sync_write() override
write down any pending data
generic_file interface to librsync
virtual void inherited_flush_read() override
reset internal engine, flush caches in order to read the data at current position
virtual U_I inherited_read(char *a, U_I size) override
implementation of read() operation
virtual void inherited_terminate() override
destructor-like call, except that it is allowed to throw exceptions
contains all the excetion class thrown by libdar
virtual bool skip_relative(S_I x) override
skip relatively to the current position
virtual bool skip_to_eof() override
skip to the end of file
this is the interface class from which all other data transfer classes inherit
virtual bool skippable(skippability direction, const infinint &amount) override
whether the implementation is able to skip
virtual infinint get_position() const override
get the current read/write position
virtual void inherited_read_ahead(const infinint &amount) override
tells the object that several calls to read() will follow to probably obtain at least the given amoun...
the arbitrary large positive integer class
virtual void inherited_write(const char *a, U_I size) override
implementation of the write() operation
inode is saved but as delta binary from the content (delta signature) of what was found in the archiv...
pure virtual class defining interface of a CRC object
libdar namespace encapsulate all libdar symbols