File-Rdiff
view release on metacpan or search on metacpan
SvREFCNT_dec (self->in);
self->in = SvREFCNT_inc (in);
self->in_ofs = 0;
void
eof(self)
File::Rdiff::Buffers self
CODE:
self->rs.eof_in = 1;
SV *
out(self)
File::Rdiff::Buffers self
CODE:
RETVAL = self->out;
self->out = 0;
OUTPUT:
RETVAL
int
avail_in(self)
File::Rdiff::Buffers self
CODE:
RETVAL = self->in ? SvCUR (self->in) - self->in_ofs
: self->rs.eof_in ? -1
: 0;
OUTPUT:
RETVAL
int
avail_out(self)
File::Rdiff::Buffers self
CODE:
RETVAL = self->outsize - (self->out ? SvCUR (self->out) : 0);
OUTPUT:
RETVAL
int
size(self)
File::Rdiff::Buffers self
CODE:
RETVAL = self->out ? SvCUR (self->out) : 0;
OUTPUT:
RETVAL
MODULE = File::Rdiff PACKAGE = File::Rdiff::Job
File::Rdiff::Job
new_sig(class, new_block_len = RS_DEFAULT_BLOCK_LEN, strong_sum_len = RS_DEFAULT_STRONG_LEN)
SV * class
size_t new_block_len
size_t strong_sum_len
PROTOTYPE: $;$$
CODE:
Newz (0, RETVAL, 1, struct File__Rdiff__Job);
RETVAL->rs = rs_sig_begin (new_block_len, strong_sum_len);
OUTPUT:
RETVAL
File::Rdiff::Job
new_loadsig(class)
SV * class
CODE:
rs_signature_t *sig;
Newz (0, RETVAL, 1, struct File__Rdiff__Job);
RETVAL->rs = rs_loadsig_begin (&sig);
RETVAL->sig = new_sig (sig);
OUTPUT:
RETVAL
File::Rdiff::Job
new_delta(class, signature)
SV * class
SV * signature
CODE:
Newz (0, RETVAL, 1, struct File__Rdiff__Job);
RETVAL->rs = rs_delta_begin (old_sig (signature));
RETVAL->sig = newSVsv (signature);
OUTPUT:
RETVAL
File::Rdiff::Job
new_patch(class, cb_or_fh)
SV * class
SV * cb_or_fh
CODE:
rs_copy_cb *cb;
void *cb_arg;
if (SvROK (cb_or_fh) && SvTYPE (SvRV (cb_or_fh)) == SVt_PVCV)
{
cb = copy_cb;
cb_arg = (void *)cb_or_fh;
}
else
{
cb = rs_file_copy_cb;
cb_arg = (void *)IoIFP (sv_2io (cb_or_fh));
}
Newz (0, RETVAL, 1, struct File__Rdiff__Job);
RETVAL->rs = rs_patch_begin (cb, cb_arg);
OUTPUT:
RETVAL
void
DESTROY(self)
File::Rdiff::Job self
CODE:
if (self->sig)
SvREFCNT_dec (self->sig);
rs_job_free (self->rs);
Safefree (self);
SV *
signature(self)
File::Rdiff::Job self
CODE:
RETVAL = SvREFCNT_inc (self->sig);
OUTPUT:
RETVAL
int
iter(self,buffers)
File::Rdiff::Job self
File::Rdiff::Buffers buffers
buffers->in_ofs = in_len - buffers->rs.avail_in;
if (buffers->out)
SvCUR_set (buffers->out, buffers->outsize - buffers->rs.avail_out);
}
OUTPUT:
RETVAL
# void rs_hexify(char *to_buf, void const *from_buf, int from_len);
# size_t rs_unbase64(char *s);
# void rs_base64(unsigned char const *buf, int n, char *out);
# * \sa rs_format_stats(), rs_log_stats()
# */
# typedef struct rs_stats {
# char const *op; /**< Human-readable name of current
# * operation. For example, "delta". */
# int lit_cmds; /**< Number of literal commands. */
# rs_long_t lit_bytes; /**< Number of literal bytes. */
# rs_long_t lit_cmdbytes; /**< Number of bytes used in literal
# * command headers. */
#
# rs_long_t copy_cmds, copy_bytes, copy_cmdbytes;
# rs_long_t sig_cmds, sig_bytes;
# int false_matches;
#
# rs_long_t sig_blocks; /**< Number of blocks described by the
# signature. */
#
# size_t block_len;
#
# rs_long_t in_bytes; /**< Total bytes read from input. */
# rs_long_t out_bytes; /**< Total bytes written to output. */
# } rs_stats_t;
#
# char *rs_format_stats(rs_stats_t const *, char *, size_t);
#
# int rs_log_stats(rs_stats_t const *stats);
#
# const rs_stats_t * rs_job_statistics(rs_job_t *job);
#
# int rs_accum_value(rs_job_t *, char *sum, size_t sum_len);
#
MODULE = File::Rdiff PACKAGE = File::Rdiff
#ifndef RSYNC_NO_STDIO_INTERFACE
int
sig_file(old_file, sig_file, block_len = RS_DEFAULT_BLOCK_LEN, strong_len = RS_DEFAULT_STRONG_LEN)
FILE * old_file
FILE * sig_file
size_t block_len
size_t strong_len
PROTOTYPE: $$;$$
CODE:
RETVAL = rs_sig_file(old_file, sig_file, block_len, strong_len, 0);
OUTPUT:
RETVAL
File::Rdiff::Signature
loadsig_file(file)
FILE * file
CODE:
rs_result r = rs_loadsig_file(file, &RETVAL, 0);
if (r != RS_DONE)
XSRETURN_IV (r);
OUTPUT:
RETVAL
int
delta_file(signature, new_file, delta_file)
File::Rdiff::Signature signature
FILE * new_file
FILE * delta_file
CODE:
RETVAL = rs_delta_file (signature, new_file, delta_file, 0);
OUTPUT:
RETVAL
int
patch_file(basis_file, delta_file, new_file)
FILE * basis_file
FILE * delta_file
FILE * new_file
CODE:
RETVAL = rs_patch_file (basis_file, delta_file, new_file, 0);
OUTPUT:
RETVAL
#endif
( run in 0.870 second using v1.01-cache-2.11-cpan-71847e10f99 )