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
549
  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