StreamPeerGZIP

Експериментальний: This class may be changed or removed in future versions.

Успадковує: StreamPeer < RefCounted < Object

Потоковий одноліток, який ручить стиснення GZIP і дефлат.

Опис

Цей клас дозволяє стискати або розпаковувати дані за допомогою 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.


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

Почати потік в режимі декомпресії з вказаною buffer_size, якщо use_deflate true використовує дефлат замість GZIP.