X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=Brotli.xs;h=c28e36cec9af935f85eb9471832de9146d7bd640;hb=0cea41a5720ced6122c74ae242472012afe06c28;hp=dff0a63f3b6017564e51b6582f683e28bcb19053;hpb=498a11cd399820ed3546a3d6721b3bc50592f023;p=io-compress-brotli.git diff --git a/Brotli.xs b/Brotli.xs index dff0a63..c28e36c 100644 --- a/Brotli.xs +++ b/Brotli.xs @@ -199,6 +199,85 @@ _mode(self, mode) OUTPUT: RETVAL +SV* +compress(self, in) + IO::Compress::Brotli self + SV* in + CODE: + ENTER; + SAVETMPS; + + PUSHMARK(SP); + XPUSHs(ST(0)); + XPUSHs(in); + XPUSHs(newSVuv(BROTLI_OPERATION_PROCESS)); + PUTBACK; + + call_method("_compress", G_SCALAR); + + SPAGAIN; + + RETVAL = POPs; + SvREFCNT_inc(RETVAL); + + PUTBACK; + FREETMPS; + LEAVE; + OUTPUT: + RETVAL + +SV* +flush(self) + IO::Compress::Brotli self + CODE: + ENTER; + SAVETMPS; + + PUSHMARK(SP); + XPUSHs(ST(0)); + XPUSHs(newSVpv("", 0)); + XPUSHs(newSVuv(BROTLI_OPERATION_FLUSH)); + PUTBACK; + + call_method("_compress", G_SCALAR); + + SPAGAIN; + + RETVAL = POPs; + SvREFCNT_inc(RETVAL); + + PUTBACK; + FREETMPS; + LEAVE; + OUTPUT: + RETVAL + +SV* +finish(self) + IO::Compress::Brotli self + CODE: + ENTER; + SAVETMPS; + + PUSHMARK(SP); + XPUSHs(ST(0)); + XPUSHs(newSVpv("", 0)); + XPUSHs(newSVuv(BROTLI_OPERATION_FINISH)); + PUTBACK; + + call_method("_compress", G_SCALAR); + + SPAGAIN; + + RETVAL = POPs; + SvREFCNT_inc(RETVAL); + + PUTBACK; + FREETMPS; + LEAVE; + OUTPUT: + RETVAL + SV* _compress(self, in, op) IO::Compress::Brotli self