blob: 777a4b8fa90674feb77c7b8b3b4112cf4602788f [file] [log] [blame]
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: Copyright OpenBMC Authors
#pragma once
#ifdef HAVE_ZSTD
#include <zstd.h>
#endif
#include <boost/asio/buffer.hpp>
#include <boost/beast/core/flat_buffer.hpp>
#include <optional>
class ZstdDecompressor
{
boost::beast::flat_buffer compressionBuf;
#ifdef HAVE_ZSTD
ZSTD_DCtx* dctx;
#endif
public:
ZstdDecompressor(const ZstdDecompressor&) = delete;
ZstdDecompressor(ZstdDecompressor&&) = delete;
ZstdDecompressor& operator=(const ZstdDecompressor&) = delete;
ZstdDecompressor& operator=(ZstdDecompressor&&) = delete;
ZstdDecompressor();
std::optional<boost::asio::const_buffer> decompress(
boost::asio::const_buffer buffIn);
~ZstdDecompressor();
};