unbro should not require maximum buffer size (RT #129480)
[io-compress-brotli.git] / lib / IO / Uncompress / Brotli.pm
index 46b11898d3154a72cbc9a20ca5acf577b68d3e7c..0cc22e2643e49fed2148760c3885b9484af8df6b 100644 (file)
@@ -8,11 +8,26 @@ use parent qw/Exporter/;
 our @EXPORT = qw/unbro/;
 our @EXPORT_OK = @EXPORT;
 
-our $VERSION = '0.003001';
+our $VERSION = '0.004001';
 
 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__
 
@@ -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_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
@@ -83,8 +103,8 @@ uncompressed data. Dies on error.
 
 =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/>
 
@@ -107,9 +127,11 @@ clean up of the overall project were contributed by:
 
 =back
 
+POD fix by Mark Zabaro, E<lt>markzabaro@gmail.comE<gt>.
+
 =head1 COPYRIGHT AND LICENSE
 
-Copyright (C) 2015-2017 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 page took 0.010258 seconds and 4 git commands to generate.