StreamPeerGZIP

实验性: This class may be changed or removed in future versions.

继承: StreamPeer < RefCounted < Object

能够处理 GZIP 和 deflate 压缩/解压缩的流对等体。

描述

这个类能够使用 GZIP/deflate 对数据进行流式压缩或解压缩。压缩或解压缩经过网络发送的文件时尤其有用,不必事先分配内存。

使用 start_compression(或 start_decompression)开启流之后,在这个流上调用 StreamPeer.put_partial_data 会对数据进行压缩(或解压缩)并写入内部缓冲区。调用 StreamPeer.get_available_bytes 会返回内部缓冲区中待处理的字节数,StreamPeer.get_partial_data 会从中获取压缩后(或解压后)的字节。流结束后,你必须调用 finish 来确保正确清空内部缓冲区(请务必最后再调用一次 StreamPeer.get_available_bytes,检查此时是否还有需要读取的数据)。

方法

void

clear()

Error

finish()

Error

start_compression(use_deflate: bool = false, buffer_size: int = 65535)

Error

start_decompression(use_deflate: bool = false, buffer_size: int = 65535)


方法说明

void clear() 🔗

清空该流,重设内部状态。


Error finish() 🔗

终止该流,对缓冲中剩余的数据块进行压缩或解压缩。


Error start_compression(use_deflate: bool = false, buffer_size: int = 65535) 🔗

开始压缩模式的流,缓冲区大小为 buffer_size,如果 use_deflatetrue 则使用 deflate 而不是 GZIP。


Error start_decompression(use_deflate: bool = false, buffer_size: int = 65535) 🔗

开始解压模式的流,缓冲区大小为 buffer_size,如果 use_deflatetrue 则使用 deflate 而不是 GZIP。