diff options
author | prime <[email protected]> | 2022-08-29 17:04:03 +0300 |
---|---|---|
committer | prime <[email protected]> | 2022-08-29 17:04:03 +0300 |
commit | 44b551befb68eebdae64f7581e211e9e8360474d (patch) | |
tree | b315c77d84c4aa534e4e0126d354ccc8faa0c292 /library/cpp/streams/lz/snappy | |
parent | 5fd371abc806e687416ef7d93138c414001f1f85 (diff) |
Split library/cpp/streams/lz into separate codecs
Diffstat (limited to 'library/cpp/streams/lz/snappy')
-rw-r--r-- | library/cpp/streams/lz/snappy/snappy.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/library/cpp/streams/lz/snappy/snappy.h b/library/cpp/streams/lz/snappy/snappy.h new file mode 100644 index 00000000000..2e680217aab --- /dev/null +++ b/library/cpp/streams/lz/snappy/snappy.h @@ -0,0 +1,50 @@ +#pragma once + +#include <util/stream/output.h> +#include <util/stream/input.h> +#include <util/generic/ptr.h> + +/** + * @addtogroup Streams_Archs + * @{ + */ + +/** + * Snappy compressing stream. + * + * @see http://code.google.com/p/snappy/ + */ +class TSnappyCompress: public IOutputStream { +public: + TSnappyCompress(IOutputStream* slave, ui16 maxBlockSize = 1 << 15); + ~TSnappyCompress() override; + +private: + void DoWrite(const void* buf, size_t len) override; + void DoFlush() override; + void DoFinish() override; + +private: + class TImpl; + THolder<TImpl> Impl_; +}; + +/** + * Snappy decompressing stream. + * + * @see http://code.google.com/p/snappy/ + */ +class TSnappyDecompress: public IInputStream { +public: + TSnappyDecompress(IInputStream* slave); + ~TSnappyDecompress() override; + +private: + size_t DoRead(void* buf, size_t len) override; + +private: + class TImpl; + THolder<TImpl> Impl_; +}; + +/** @} */ |