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() |
finish() |
|
start_compression(use_deflate: bool = false, buffer_size: int = 65535) |
|
start_decompression(use_deflate: bool = false, buffer_size: int = 65535) |
Описания метода
void clear() 🔗
Очищает этот поток, сбрасывая внутреннее состояние.
Завершает поток, сжимая любой оставшийся буферизованный фрагмент.
Вызвать его нужно только при сжатии.
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.