1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 09:37:34 +00:00

LibCompress: Port GzipCompressor to Core::Stream

This commit is contained in:
Tim Schumacher 2022-12-27 11:40:23 +01:00 committed by Andreas Kling
parent b4b80b7ec6
commit a212bc3052
5 changed files with 50 additions and 56 deletions

View file

@ -79,18 +79,20 @@ private:
bool m_eof { false };
};
class GzipCompressor final : public OutputStream {
class GzipCompressor final : public Core::Stream::Stream {
public:
GzipCompressor(OutputStream&);
~GzipCompressor() = default;
GzipCompressor(Core::Stream::Handle<Core::Stream::Stream>);
size_t write(ReadonlyBytes) override;
bool write_or_error(ReadonlyBytes) override;
virtual ErrorOr<Bytes> read(Bytes) override;
virtual ErrorOr<size_t> write(ReadonlyBytes) override;
virtual bool is_eof() const override;
virtual bool is_open() const override;
virtual void close() override;
static Optional<ByteBuffer> compress_all(ReadonlyBytes bytes);
static ErrorOr<ByteBuffer> compress_all(ReadonlyBytes bytes);
private:
OutputStream& m_output_stream;
Core::Stream::Handle<Core::Stream::Stream> m_output_stream;
};
}