#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
#include <zlib.h>
#include "gzip-faster-perl.c"
typedef
gzip_faster_t * Gzip__Faster;
MODULE=Gzip::Faster PACKAGE=Gzip::Faster
PROTOTYPES: DISABLE
SV * gzip (plain)
SV * plain
PREINIT:
gzip_faster_t gz;
CODE:
gz.in = plain;
gz.is_gzip = 1;
gz.is_raw = 0;
gz.user_object = 0;
RETVAL = gzip_faster (& gz);
OUTPUT:
RETVAL
SV * gunzip (zipped)
SV * zipped
PREINIT:
gzip_faster_t gz;
CODE:
gz.is_gzip = 1;
gz.is_raw = 0;
gz.in = zipped;
gz.user_object = 0;
RETVAL = gunzip_faster (& gz);
OUTPUT:
RETVAL
SV * deflate (plain)
SV * plain
PREINIT:
gzip_faster_t gz;
CODE:
gz.in = plain;
gz.is_gzip = 0;
gz.is_raw = 0;
gz.user_object = 0;
RETVAL = gzip_faster (& gz);
OUTPUT:
RETVAL
SV * inflate (deflated)
SV * deflated
PREINIT:
gzip_faster_t gz;
CODE:
gz.is_gzip = 0;
gz.is_raw = 0;
gz.in = deflated;
gz.user_object = 0;
RETVAL = gunzip_faster (& gz);
OUTPUT:
RETVAL
SV * deflate_raw (plain)
SV * plain
PREINIT:
gzip_faster_t gz;
CODE:
gz.in = plain;
gz.is_gzip = 0;
gz.is_raw = 1;
gz.user_object = 0;
RETVAL = gzip_faster (& gz);
OUTPUT:
RETVAL
SV * inflate_raw (deflated)
SV * deflated
PREINIT:
gzip_faster_t gz;
CODE:
gz.is_gzip = 0;
gz.is_raw = 1;
gz.in = deflated;
gz.user_object = 0;
RETVAL = gunzip_faster (& gz);
OUTPUT:
RETVAL
Gzip::Faster
new
(
class
)
const
char
*
class
;
CODE:
Newxz (RETVAL, 1, gzip_faster_t);
new_user_object (RETVAL);
if
(!
class
) {
croak (
"No class"
);
}
OUTPUT:
RETVAL
void
DESTROY (gf)
Gzip::Faster gf
CODE:
if
(! gf->user_object) {
croak (
"THIS IS NOT A USER-VISIBLE OBJECT"
);
}
gf_delete_file_name (gf);
gf_delete_mod_time (gf);
Safefree (gf);
void
level (gf, level = Z_DEFAULT_COMPRESSION)
Gzip::Faster gf;
int
level;
CODE:
set_compression_level (gf, level);
SV *
zip (gf, plain)
Gzip::Faster gf;
SV * plain;
CODE:
gf->in = plain;
RETVAL = gzip_faster (gf);
OUTPUT:
RETVAL
SV *
unzip (gf, deflated)
Gzip::Faster gf
SV * deflated
CODE:
gf->in = deflated;
RETVAL = gunzip_faster (gf);
OUTPUT:
RETVAL
void
copy_perl_flags (gf, on_off)
Gzip::Faster gf;
SV * on_off;
CODE:
gf->copy_perl_flags = SvTRUE (on_off);
void
raw (gf, on_off)
Gzip::Faster gf;
SV * on_off;
CODE:
gf->is_raw = SvTRUE (on_off);
gf->is_gzip = 0;
void
gzip_format (gf, on_off)
Gzip::Faster gf;
SV * on_off;
CODE:
gf->is_gzip = SvTRUE (on_off);
gf->is_raw = 0;
SV *
file_name (gf, filename = 0)
Gzip::Faster gf;
SV * filename;
CODE:
if
(filename) {
gf_set_file_name (gf, filename);
SvREFCNT_inc (filename);
RETVAL = filename;
}
else
{
SvREFCNT_inc (gf->file_name);
RETVAL = gf_get_file_name (gf);
}
OUTPUT:
RETVAL
SV *
mod_time (gf, modtime = 0)
Gzip::Faster gf;
SV * modtime;
CODE:
if
(modtime) {
gf_set_mod_time (gf, modtime);
SvREFCNT_inc (modtime);
RETVAL = modtime;
}
else
{
SvREFCNT_inc (gf->mod_time);
RETVAL = gf_get_mod_time (gf);
}
OUTPUT:
RETVAL