// 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_