| // Copyright 2017 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef _BSDIFF_BROTLI_DECOMPRESSOR_H_ |
| #define _BSDIFF_BROTLI_DECOMPRESSOR_H_ |
| |
| #include <brotli/decode.h> |
| |
| #include "bsdiff/decompressor_interface.h" |
| |
| namespace bsdiff { |
| |
| class BrotliDecompressor : public DecompressorInterface { |
| public: |
| BrotliDecompressor() |
| : brotli_decoder_state_(nullptr), next_in_(nullptr), available_in_(0) {} |
| ~BrotliDecompressor(); |
| |
| // DecompressorInterface overrides. |
| bool SetInputData(const uint8_t* input_data, size_t size) override; |
| bool Read(uint8_t* output_data, size_t bytes_to_output) override; |
| bool Close() override; |
| |
| private: |
| BrotliDecoderState* brotli_decoder_state_; |
| const uint8_t* next_in_; |
| size_t available_in_; |
| }; |
| |
| } // namespace bsdiff |
| |
| #endif // _BSDIFF_BROTLI_DECOMPRESSOR_H_ |