Home | History | Annotate | Download | only in bsdiff
      1 // Copyright 2017 The Chromium OS Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef _BSDIFF_BROTLI_DECOMPRESSOR_H_
      6 #define _BSDIFF_BROTLI_DECOMPRESSOR_H_
      7 
      8 #include <brotli/decode.h>
      9 
     10 #include "bsdiff/decompressor_interface.h"
     11 
     12 namespace bsdiff {
     13 
     14 class BrotliDecompressor : public DecompressorInterface {
     15  public:
     16   BrotliDecompressor()
     17       : brotli_decoder_state_(nullptr), next_in_(nullptr), available_in_(0) {}
     18 
     19   // DecompressorInterface overrides.
     20   bool SetInputData(const uint8_t* input_data, size_t size) override;
     21   bool Read(uint8_t* output_data, size_t bytes_to_output) override;
     22   bool Close() override;
     23 
     24  private:
     25   BrotliDecoderState* brotli_decoder_state_;
     26   const uint8_t* next_in_;
     27   size_t available_in_;
     28 };
     29 
     30 }  // namespace bsdiff
     31 
     32 #endif  // _BSDIFF_BROTLI_DECOMPRESSOR_H_
     33