Module: RRDiff
- Defined in:
- lib/rrdiff/file.rb,
ext/rrdiff/rrdiff.c
Defined Under Namespace
Modules: File
Class Method Summary collapse
- .delta(new_file, sig_file, delta_file) ⇒ Object
- .patch(old_file, delta_file, patched_file) ⇒ Object
- .signature(old_file, sig_file) ⇒ Object
Class Method Details
.delta(new_file, sig_file, delta_file) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'ext/rrdiff/rrdiff.c', line 26
static VALUE rrdiff_delta(VALUE mod, VALUE new_file, VALUE sig_file, VALUE delta_file)
{
FILE *newfile, *sigfile, *deltafile;
rs_result result;
rs_stats_t stats;
rs_signature_t *sig;
newfile = fopen(StringValuePtr(new_file), "rb");
sigfile = fopen(StringValuePtr(sig_file), "rb");
deltafile = fopen(StringValuePtr(delta_file), "wb");
if((result = rs_loadsig_file(sigfile, &sig, &stats)) != RS_DONE)
return Qnil;
if ((result = rs_build_hash_table(sig)) != RS_DONE)
return Qnil;
result = rs_delta_file(sig, newfile, deltafile, &stats);
rs_free_sumset(sig);
fclose(newfile);
fclose(sigfile);
fclose(deltafile);
return Qnil;
}
|
.patch(old_file, delta_file, patched_file) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'ext/rrdiff/rrdiff.c', line 55
static VALUE rrdiff_patch(VALUE mod, VALUE old_file, VALUE delta_file, VALUE patched_file)
{
FILE *basisfile, *deltafile, *newfile;
rs_stats_t stats;
rs_result result;
basisfile = fopen(StringValuePtr(old_file), "rb");
deltafile = fopen(StringValuePtr(delta_file), "rb");
newfile = fopen(StringValuePtr(patched_file), "wb");
result = rs_patch_file(basisfile, deltafile, newfile, &stats);
fclose(newfile);
fclose(deltafile);
fclose(basisfile);
return Qnil;
}
|
.signature(old_file, sig_file) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'ext/rrdiff/rrdiff.c', line 8
static VALUE rrdiff_signature(VALUE mod, VALUE old_file, VALUE sig_file)
{
FILE *basis, *signature;
rs_result result;
rs_stats_t stats;
basis = fopen(StringValuePtr(old_file), "rb");
signature = fopen(StringValuePtr(sig_file), "wb");
result = rs_sig_file(basis, signature, RS_DEFAULT_BLOCK_LEN, RS_DEFAULT_STRONG_LEN, &stats);
fclose(basis);
fclose(signature);
return Qnil;
}
|