21class lz4c_steambuf :
public std::streambuf {
23 lz4c_steambuf(std::ostream& sink,
size_t buf_size);
29 lz4c_steambuf(
const lz4c_steambuf&) =
delete;
30 lz4c_steambuf(lz4c_steambuf&&) =
delete;
31 lz4c_steambuf& operator=(
const lz4c_steambuf&) =
delete;
32 lz4c_steambuf& operator=(lz4c_steambuf&&) =
delete;
35 int_type overflow(int_type ch)
override;
37 int_type sync()
override;
39 void compress_and_write();
42 std::vector<char> src_buf;
43 std::vector<char> dest_buf;
44 LZ4F_compressionContext_t ctx{
nullptr};
48class lz4d_streambuf :
public std::streambuf {
50 lz4d_streambuf(std::istream& source,
size_t buf_size);
54 int_type underflow()
override;
56 lz4d_streambuf(
const lz4d_streambuf&) =
delete;
57 lz4d_streambuf(lz4d_streambuf&&) =
delete;
58 lz4d_streambuf& operator=(
const lz4d_streambuf&) =
delete;
59 lz4d_streambuf& operator=(lz4d_streambuf&&) =
delete;
62 std::istream& src_str;
63 std::vector<char> src_buf;
64 std::vector<char> dest_buf;
66 size_t src_buf_size{0};
67 LZ4F_decompressionContext_t ctx{
nullptr};