fune/toolkit/components/url-classifier/RiceDeltaDecoder.h
Cristian Tuns 8e06a7a853 Backed out 12 changesets (bug 1825325, bug 1825336, bug 1825333, bug 1825332, bug 1825324, bug 1824557, bug 1825328, bug 1825335, bug 1825330, bug 1825329, bug 1825327, bug 1825331) for causing build bustages in nsClipboard.cpp CLOSED TREE
Backed out changeset 9de3ed24d3a0 (bug 1825336)
Backed out changeset aef787728f19 (bug 1825335)
Backed out changeset a04c341244c1 (bug 1825333)
Backed out changeset e3ad15f762ba (bug 1825332)
Backed out changeset eed23da92a27 (bug 1825331)
Backed out changeset 8213bb54376e (bug 1825330)
Backed out changeset 747ec5ac4994 (bug 1825329)
Backed out changeset e91ff431f92d (bug 1825328)
Backed out changeset 59c18d13768b (bug 1825327)
Backed out changeset 538096d99e49 (bug 1825325)
Backed out changeset c76eb9d9b095 (bug 1825324)
Backed out changeset 8b81410eb686 (bug 1824557)
2023-03-31 12:58:53 -04:00

37 lines
1.4 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);
// @param aNumEntries The number of values to be decoded, not including
// the first value.
// @param aDecodedData A pre-allocated output buffer. Note that
// aDecodedData[0] will be filled with |aFirstValue|
// and the buffer length (in byte) should be
// ((aNumEntries + 1) * sizeof(uint32_t)).
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