HTTPRequest now accepts gzip

Added request_raw to HttpRequest
Added decompress_dynamic to Compression class
Added decompress_dynamic to BytePoolArray

Merge doc fix

revert
This commit is contained in:
Adam Brown 2020-05-21 01:05:32 -07:00
parent 21907011c1
commit 6584db1538
7 changed files with 272 additions and 7 deletions

View file

@ -57,6 +57,20 @@
Returns a new [PackedByteArray] with the data decompressed. Set [code]buffer_size[/code] to the size of the uncompressed data. Set the compression mode using one of [enum File.CompressionMode]'s constants.
</description>
</method>
<method name="decompress_dynamic">
<return type="PackedByteArray">
</return>
<argument index="0" name="max_output_size" type="int" default="0">
</argument>
<argument index="1" name="compression_mode" type="int" default="0">
</argument>
<description>
Returns a new [PackedByteArray] with the data decompressed. Set the compression mode using one of [enum File.CompressionMode]'s constants. [b]This method only accepts gzip and deflate compression modes.[/b]
This method is potentially slower than [code]decompress[/code], as it may have to re-allocate it's output buffer multiple times while decompressing, where as [code]decompress[/code] knows it's output buffer size from the begining.
GZIP has a maximal compression ratio of 1032:1, meaning it's very possible for a small compressed payload to decompress to a potentially very large output. To guard against this, you may provide a maximum size this function is allowed to allocate in bytes via [code]max_output_size[/code]. Passing -1 will allow for unbounded output. If any positive value is passed, and the decompression exceeds that ammount in bytes, then an error will be returned.
</description>
</method>
<method name="empty">
<return type="bool">
</return>