You've already forked godot
							
							
				mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 12:00:25 +00:00 
			
		
		
		
	Fixes #97201 Instead of using and arbitrary fixed size for the internal buffer, the remaining available bytes of the internal `RingBuffer` is used. Also add unit tests for `StreamPeerGZIP`.
		
			
				
	
	
		
			44 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?xml version="1.0" encoding="UTF-8" ?>
 | 
						|
<class name="StreamPeerGZIP" inherits="StreamPeer" experimental="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
 | 
						|
	<brief_description>
 | 
						|
		A stream peer that handles GZIP and deflate compression/decompression.
 | 
						|
	</brief_description>
 | 
						|
	<description>
 | 
						|
		This class allows to compress or decompress data using GZIP/deflate in a streaming fashion. This is particularly useful when compressing or decompressing files that have to be sent through the network without needing to allocate them all in memory.
 | 
						|
		After starting the stream via [method start_compression] (or [method start_decompression]), calling [method StreamPeer.put_partial_data] on this stream will compress (or decompress) the data, writing it to the internal buffer. Calling [method StreamPeer.get_available_bytes] will return the pending bytes in the internal buffer, and [method StreamPeer.get_partial_data] will retrieve the compressed (or decompressed) bytes from it. When the stream is over, you must call [method finish] to ensure the internal buffer is properly flushed (make sure to call [method StreamPeer.get_available_bytes] on last time to check if more data needs to be read after that).
 | 
						|
	</description>
 | 
						|
	<tutorials>
 | 
						|
	</tutorials>
 | 
						|
	<methods>
 | 
						|
		<method name="clear">
 | 
						|
			<return type="void" />
 | 
						|
			<description>
 | 
						|
				Clears this stream, resetting the internal state.
 | 
						|
			</description>
 | 
						|
		</method>
 | 
						|
		<method name="finish">
 | 
						|
			<return type="int" enum="Error" />
 | 
						|
			<description>
 | 
						|
				Finalizes the stream, compressing any buffered chunk left.
 | 
						|
				You must call it only when you are compressing.
 | 
						|
			</description>
 | 
						|
		</method>
 | 
						|
		<method name="start_compression">
 | 
						|
			<return type="int" enum="Error" />
 | 
						|
			<param index="0" name="use_deflate" type="bool" default="false" />
 | 
						|
			<param index="1" name="buffer_size" type="int" default="65535" />
 | 
						|
			<description>
 | 
						|
				Start the stream in compression mode with the given [param buffer_size], if [param use_deflate] is [code]true[/code] uses deflate instead of GZIP.
 | 
						|
			</description>
 | 
						|
		</method>
 | 
						|
		<method name="start_decompression">
 | 
						|
			<return type="int" enum="Error" />
 | 
						|
			<param index="0" name="use_deflate" type="bool" default="false" />
 | 
						|
			<param index="1" name="buffer_size" type="int" default="65535" />
 | 
						|
			<description>
 | 
						|
				Start the stream in decompression mode with the given [param buffer_size], if [param use_deflate] is [code]true[/code] uses deflate instead of GZIP.
 | 
						|
			</description>
 | 
						|
		</method>
 | 
						|
	</methods>
 | 
						|
</class>
 |