зеркало из https://github.com/mozilla/gecko-dev.git
34 строки
1.0 KiB
C++
34 строки
1.0 KiB
C++
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef RICE_DELTA_DECODER_H
|
|
#define RICE_DELTA_DECODER_H
|
|
|
|
namespace mozilla {
|
|
namespace safebrowsing {
|
|
|
|
class RiceDeltaDecoder {
|
|
public:
|
|
// This decoder is tailored for safebrowsing v4, including the
|
|
// bit reading order and how the remainder part is interpreted.
|
|
// The caller just needs to feed the byte stream received from
|
|
// network directly. Note that the input buffer must be mutable
|
|
// since the decoder will do some pre-processing before decoding.
|
|
RiceDeltaDecoder(uint8_t* aEncodedData, size_t aEncodedDataSize);
|
|
|
|
bool Decode(uint32_t aRiceParameter,
|
|
uint32_t aFirstValue,
|
|
uint32_t aNumEntries,
|
|
uint32_t* aDecodedData);
|
|
|
|
private:
|
|
uint8_t* mEncodedData;
|
|
size_t mEncodedDataSize;
|
|
};
|
|
|
|
} // namespace safebrowsing
|
|
} // namespace mozilla
|
|
|
|
#endif // UPDATE_V4_DECODER_H
|