mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 18:07:34 +00:00
LibCompress: Move CanonicalCode
in the Brotli
namespace
The class was an inner class of `BrotliDecompressionStream`, let's move it outside the `Stream` object in order to ease the access to user only interested in this part.
This commit is contained in:
parent
9248fd7f33
commit
96eace8390
2 changed files with 34 additions and 28 deletions
|
@ -13,7 +13,35 @@
|
|||
|
||||
namespace Compress {
|
||||
|
||||
namespace Brotli {
|
||||
|
||||
class CanonicalCode {
|
||||
public:
|
||||
CanonicalCode() = default;
|
||||
|
||||
static ErrorOr<CanonicalCode> read_prefix_code(LittleEndianInputBitStream&, size_t alphabet_size);
|
||||
static ErrorOr<CanonicalCode> read_simple_prefix_code(LittleEndianInputBitStream&, size_t alphabet_size);
|
||||
static ErrorOr<CanonicalCode> read_complex_prefix_code(LittleEndianInputBitStream&, size_t alphabet_size, size_t hskip);
|
||||
|
||||
ErrorOr<size_t> read_symbol(LittleEndianInputBitStream&) const;
|
||||
void clear()
|
||||
{
|
||||
m_symbol_codes.clear();
|
||||
m_symbol_values.clear();
|
||||
}
|
||||
|
||||
private:
|
||||
static ErrorOr<size_t> read_complex_prefix_code_length(LittleEndianInputBitStream&);
|
||||
|
||||
Vector<size_t> m_symbol_codes;
|
||||
Vector<size_t> m_symbol_values;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
class BrotliDecompressionStream : public Stream {
|
||||
using CanonicalCode = Brotli::CanonicalCode;
|
||||
|
||||
public:
|
||||
enum class State {
|
||||
WindowSize,
|
||||
|
@ -26,28 +54,6 @@ public:
|
|||
CompressedDictionary,
|
||||
};
|
||||
|
||||
class CanonicalCode {
|
||||
public:
|
||||
CanonicalCode() = default;
|
||||
|
||||
static ErrorOr<CanonicalCode> read_prefix_code(LittleEndianInputBitStream&, size_t alphabet_size);
|
||||
static ErrorOr<CanonicalCode> read_simple_prefix_code(LittleEndianInputBitStream&, size_t alphabet_size);
|
||||
static ErrorOr<CanonicalCode> read_complex_prefix_code(LittleEndianInputBitStream&, size_t alphabet_size, size_t hskip);
|
||||
|
||||
ErrorOr<size_t> read_symbol(LittleEndianInputBitStream&) const;
|
||||
void clear()
|
||||
{
|
||||
m_symbol_codes.clear();
|
||||
m_symbol_values.clear();
|
||||
}
|
||||
|
||||
private:
|
||||
static ErrorOr<size_t> read_complex_prefix_code_length(LittleEndianInputBitStream&);
|
||||
|
||||
Vector<size_t> m_symbol_codes;
|
||||
Vector<size_t> m_symbol_values;
|
||||
};
|
||||
|
||||
struct Block {
|
||||
size_t type;
|
||||
size_t type_previous;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue