]> iEval git - io-compress-brotli.git/blobdiff - lib/IO/Uncompress/Brotli.pm
unbro should not require maximum buffer size (RT #129480)
[io-compress-brotli.git] / lib / IO / Uncompress / Brotli.pm
index 75798a2703ed5a178d3a66b3518813ec8e939caa..0cc22e2643e49fed2148760c3885b9484af8df6b 100644 (file)
@@ -8,11 +8,26 @@ use parent qw/Exporter/;
 our @EXPORT = qw/unbro/;
 our @EXPORT_OK = @EXPORT;
 
 our @EXPORT = qw/unbro/;
 our @EXPORT_OK = @EXPORT;
 
-our $VERSION = '0.002001';
+our $VERSION = '0.004001';
 
 require XSLoader;
 XSLoader::load('IO::Compress::Brotli', $VERSION);
 
 
 require XSLoader;
 XSLoader::load('IO::Compress::Brotli', $VERSION);
 
+# 0.004 has unbro with prototype $$
+# 0.004_001 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__
 
 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.
 
 the decompressed data, if this is not sufficient (or there is another
 error) this function will croak.
 
+As of version 0.004_001, the I<$maximum_decoded_size> argument is
+optional. If not provided, B<unbro> 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
 Exported by default.
 
 =back
@@ -83,8 +103,8 @@ uncompressed data. Dies on error.
 
 =head1 SEE ALSO
 
 
 =head1 SEE ALSO
 
-Brotli Compressed Data Format Internet-Draft:
-L<https://www.ietf.org/id/draft-alakuijala-brotli-08.txt>
+RFC 7392 Brotli Compressed Data Format:
+L<https://tools.ietf.org/html/rfc7932>
 
 Brotli source code: L<https://github.com/google/brotli/>
 
 
 Brotli source code: L<https://github.com/google/brotli/>
 
@@ -107,9 +127,11 @@ clean up of the overall project were contributed by:
 
 =back
 
 
 =back
 
+POD fix by Mark Zabaro, E<lt>markzabaro@gmail.comE<gt>.
+
 =head1 COPYRIGHT AND LICENSE
 
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2015-2016 by Marius Gavrilescu
+Copyright (C) 2015-2018 by Marius Gavrilescu
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.20.2 or,
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.20.2 or,
This page took 0.022995 seconds and 4 git commands to generate.