/* * Copyright (c) 2020, the SerenityOS developers. * Copyright (c) 2025, Altomani Gianluca * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include #include #include namespace Compress { class ZlibDecompressor final : public GenericZlibDecompressor { public: static ErrorOr> create(MaybeOwned); static ErrorOr decompress_all(ReadonlyBytes); private: ZlibDecompressor(AK::FixedArray buffer, MaybeOwned stream, z_stream* zstream) : GenericZlibDecompressor(move(buffer), move(stream), zstream) { } }; class ZlibCompressor final : public GenericZlibCompressor { public: static ErrorOr> create(MaybeOwned, GenericZlibCompressionLevel = GenericZlibCompressionLevel::Default); static ErrorOr compress_all(ReadonlyBytes, GenericZlibCompressionLevel = GenericZlibCompressionLevel::Default); private: ZlibCompressor(AK::FixedArray buffer, MaybeOwned stream, z_stream* zstream) : GenericZlibCompressor(move(buffer), move(stream), zstream) { } }; }