Compress-LZF
view release on metacpan or search on metacpan
serializer_package = newSVpv ("Storable", 0);
serializer_mstore = newSVpv ("Storable::net_mstore", 0);
serializer_mretrieve = newSVpv ("Storable::mretrieve", 0);
void
set_serializer(package, mstore, mretrieve)
SV * package
SV * mstore
SV * mretrieve
PROTOTYPE: $$$
PPCODE:
SvSetSV (serializer_package , package );
SvSetSV (serializer_mstore , mstore );
SvSetSV (serializer_mretrieve, mretrieve);
SvREFCNT_dec (storable_mstore ); storable_mstore = 0;
SvREFCNT_dec (storable_mretrieve); storable_mretrieve = 0;
void
compress(data)
SV * data
ALIAS:
compress_best = 1
PROTOTYPE: $
PPCODE:
XPUSHs (sv_2mortal (compress_sv (data, 0, MAGIC_U, ix)));
void
decompress(data)
SV * data
PROTOTYPE: $
PPCODE:
XPUSHs (sv_2mortal (decompress_sv (data, 0)));
void
sfreeze(sv)
SV * sv
ALIAS:
sfreeze = 0
sfreeze_cr = 1
sfreeze_c = 2
sfreeze_best = 4
sfreeze_cr_best = 5
sfreeze_c_best = 6
PROTOTYPE: $
PPCODE:
{
int best = ix & 4;
ix &= 3;
SvGETMAGIC (sv);
if (!SvOK (sv))
XPUSHs (sv_2mortal (newSVpvn ("\02", 1))); /* 02 == MAGIC_undef */
else if (SvROK (sv)
|| SvUTF8 (sv)
XPUSHs (sv_2mortal (newSVpvn (s, len)));
}
else /* don't compress */
XPUSHs (sv_2mortal (newSVsv (sv)));
}
void
sthaw(sv)
SV * sv
PROTOTYPE: $
PPCODE:
{
STRLEN svlen;
int deref = 0;
SvGETMAGIC (sv);
if (SvPOK (sv) && IN_RANGE (SvPVbyte (sv, svlen)[0], MAGIC_LO, MAGIC_HI))
{
redo:
switch (SvPVX (sv)[0])
( run in 1.766 second using v1.01-cache-2.11-cpan-71847e10f99 )