GZIP_SUPPORT
Calculates Adler-32 checksum for string, and returns updated
value of adler. If string is omitted, it returns
the Adler-32 initial value. If adler is omitted, it assumes
that the initial value is given to adler.
FIXME: expression.
static VALUE
rb_zlib_adler32(int argc, VALUE *argv, VALUE klass)
{
return do_checksum(argc, argv, adler32);
}
Combine two Adler-32 check values in to one. alder1 is the
first Adler-32 value, adler2 is the second Adler-32 value.
len2 is the length of the string used to generate
adler2.
static VALUE
rb_zlib_adler32_combine(VALUE klass, VALUE adler1, VALUE adler2, VALUE len2)
{
return ULONG2NUM(
adler32_combine(NUM2ULONG(adler1), NUM2ULONG(adler2), NUM2LONG(len2)));
}
Calculates CRC checksum for string, and returns updated value
of crc. If string is omitted, it returns the CRC
initial value. If crc is omitted, it assumes that the initial
value is given to crc.
FIXME: expression.
static VALUE
rb_zlib_crc32(int argc, VALUE *argv, VALUE klass)
{
return do_checksum(argc, argv, crc32);
}
Combine two CRC-32 check values in to one. crc1 is the first
CRC-32 value, crc2 is the second CRC-32 value.
len2 is the length of the string used to generate
crc2.
static VALUE
rb_zlib_crc32_combine(VALUE klass, VALUE crc1, VALUE crc2, VALUE len2)
{
return ULONG2NUM(
crc32_combine(NUM2ULONG(crc1), NUM2ULONG(crc2), NUM2LONG(len2)));
}
Returns the table for calculating CRC checksum as an array.
static VALUE
rb_zlib_crc_table(VALUE obj)
{
const unsigned long *crctbl;
VALUE dst;
int i;
crctbl = get_crc_table();
dst = rb_ary_new2(256);
for (i = 0; i < 256; i++) {
rb_ary_push(dst, rb_uint2inum(crctbl[i]));
}
return dst;
}
Commenting is here to help enhance the documentation. For example, sample code, or clarification of the documentation.
If you are posting code samples in your comments, please wrap them in "<pre><code class="ruby" > ... </code></pre>" markup in order to get syntax highlighting.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file a bug report so that it can be corrected for the next release. Thank you.