1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 23:17:45 +00:00

LibCompress: Switch ZlibCompressor to a constructor pattern

We don't have anything fallible in the constructor yet, but what's there
should be fallible and once we switch to Core::Stream it will be
fallible.
This commit is contained in:
Tim Schumacher 2022-12-26 15:58:42 +01:00 committed by Sam Atkins
parent 23a9d62f39
commit f0b035b66c
3 changed files with 21 additions and 18 deletions

View file

@ -62,21 +62,22 @@ private:
class ZlibCompressor : public OutputStream {
public:
ZlibCompressor(OutputStream&, ZlibCompressionLevel = ZlibCompressionLevel::Default);
static ErrorOr<NonnullOwnPtr<ZlibCompressor>> construct(OutputStream&, ZlibCompressionLevel = ZlibCompressionLevel::Default);
~ZlibCompressor();
size_t write(ReadonlyBytes) override;
bool write_or_error(ReadonlyBytes) override;
void finish();
static Optional<ByteBuffer> compress_all(ReadonlyBytes bytes, ZlibCompressionLevel = ZlibCompressionLevel::Default);
static ErrorOr<ByteBuffer> compress_all(ReadonlyBytes bytes, ZlibCompressionLevel = ZlibCompressionLevel::Default);
private:
ZlibCompressor(OutputStream&, ZlibCompressionLevel);
void write_header(ZlibCompressionMethod, ZlibCompressionLevel);
bool m_finished { false };
OutputBitStream m_output_stream;
OwnPtr<OutputStream> m_compressor;
NonnullOwnPtr<OutputStream> m_compressor;
Crypto::Checksum::Adler32 m_adler32_checksum;
};