Line data Source code
1 : #pragma once 2 : 3 : #include "envoy/buffer/buffer.h" 4 : 5 : namespace Envoy { 6 : namespace Compression { 7 : namespace Decompressor { 8 : 9 : /** 10 : * Allows decompressing data. 11 : */ 12 : class Decompressor { 13 : public: 14 758 : virtual ~Decompressor() = default; 15 : 16 : /** 17 : * Decompresses data from one buffer into another buffer. 18 : * @param input_buffer supplies the buffer with compressed data. 19 : * @param output_buffer supplies the buffer to output decompressed data. 20 : */ 21 : virtual void decompress(const Buffer::Instance& input_buffer, 22 : Buffer::Instance& output_buffer) PURE; 23 : }; 24 : 25 : using DecompressorPtr = std::unique_ptr<Decompressor>; 26 : 27 : } // namespace Decompressor 28 : } // namespace Compression 29 : } // namespace Envoy