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_deflate равен true, вместо GZIP будет использоваться deflate.


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

Запустить поток в режиме распаковки с заданным buffer_size, если use_deflate равен true, то вместо GZIP будет использоваться deflate.