| // 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(); | 
 | }; |