You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
913 B
34 lines
913 B
// 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_
|