10#include <sparrow/buffer/buffer.hpp>
22 class CompressionCacheImpl;
37 std::optional<std::span<const std::uint8_t>>
find(const
void* data_ptr, const
size_t data_size);
38 std::span<const std::uint8_t>
39 store(const
void* data_ptr, const
size_t data_size, std::vector<std::uint8_t>&& data);
41 [[nodiscard]]
size_t size() const;
42 [[nodiscard]]
size_t count(const
void* data_ptr, const
size_t data_size) const;
43 [[nodiscard]]
bool empty() const;
48 std::unique_ptr<CompressionCacheImpl> m_pimpl;
53 const std::span<const std::uint8_t>& data,
59 const std::span<const std::uint8_t>& data,
63 [[nodiscard]]
SPARROW_IPC_API std::variant<sparrow::buffer<std::uint8_t>, std::span<const std::uint8_t>>
std::span< const std::uint8_t > store(const void *data_ptr, const size_t data_size, std::vector< std::uint8_t > &&data)
std::optional< std::span< const std::uint8_t > > find(const void *data_ptr, const size_t data_size)
CompressionCache(CompressionCache &&) noexcept
size_t count(const void *data_ptr, const size_t data_size) const
SPARROW_IPC_API std::variant< sparrow::buffer< std::uint8_t >, std::span< const std::uint8_t > > decompress(const CompressionType compression_type, std::span< const std::uint8_t > data)
SPARROW_IPC_API std::span< const std::uint8_t > compress(const CompressionType compression_type, const std::span< const std::uint8_t > &data, CompressionCache &cache)
SPARROW_IPC_API size_t get_compressed_size(const CompressionType compression_type, const std::span< const std::uint8_t > &data, CompressionCache &cache)