X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FIO%2FUncompress%2FBrotli.pm;h=f472ca989afb0d5e9bef138a3c612487442272ee;hb=5a08338a18ef0a08235ffa3d8a529ec8cf95ba81;hp=3903095cf1b449806c4ba92c44dc6a3aba905e55;hpb=b4be88fe42f3233691ee9b995b35b21dc235f384;p=io-compress-brotli.git diff --git a/lib/IO/Uncompress/Brotli.pm b/lib/IO/Uncompress/Brotli.pm index 3903095..f472ca9 100644 --- a/lib/IO/Uncompress/Brotli.pm +++ b/lib/IO/Uncompress/Brotli.pm @@ -8,11 +8,26 @@ use parent qw/Exporter/; our @EXPORT = qw/unbro/; our @EXPORT_OK = @EXPORT; -our $VERSION = '0.004001'; +our $VERSION = '0.004_002'; require XSLoader; XSLoader::load('IO::Compress::Brotli', $VERSION); +# 0.004001 has unbro with prototype $$ +# 0.004_002 renames it to unbro_given_size, and provides unbro with +# prototype $;$ which calls: +# * unbro_given_size when called with two arguments +# * the OO interface when called with one argument +sub unbro ($;$) { + my ($buffer, $decoded_size) = @_; + if (defined $decoded_size) { + return unbro_given_size($buffer, $decoded_size) + } else { + my $bro = IO::Uncompress::Brotli->create; + return $bro->decompress($buffer); + } +} + 1; __END__ @@ -58,6 +73,11 @@ data. It allocates a buffer of size I<$maximum_decoded_size> to store the decompressed data, if this is not sufficient (or there is another error) this function will croak. +As of version 0.004_002, the I<$maximum_decoded_size> argument is +optional. If not provided, B uses the streaming interface +described in the next section to decompress the buffer in blocks of +one megabyte. The decompressed blocks are concatenated and returned. + Exported by default. =back @@ -83,8 +103,8 @@ uncompressed data. Dies on error. =head1 SEE ALSO -Brotli Compressed Data Format Internet-Draft: -L +RFC 7392 Brotli Compressed Data Format: +L Brotli source code: L @@ -107,6 +127,8 @@ clean up of the overall project were contributed by: =back +POD fix by Mark Zabaro, Emarkzabaro@gmail.comE. + =head1 COPYRIGHT AND LICENSE Copyright (C) 2015-2018 by Marius Gavrilescu