ByteBuf encoded with Snappy compression into an
output ByteBuf.
See snappy format.
| Modifier and Type | Class and Description |
|---|---|
| private static enum |
| Modifier and Type | Field and Description |
|---|---|
| private static final int | |
| private static final int | |
| private static final int | |
| private static final int | |
| private static final int | |
| private static final int | |
| private static final int | |
| private static final int | |
| private Snappy. | |
| private byte | |
| private int |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| private static int | Returns: The minimum number of bits required to encode the supplied valueThe value to calculate the minimum number of bits required to encode value)Calculates the minimum number of bits required to encode a value. |
| pack-priv static int | calculateChecksum(ByteBuf
The input data to calculate the CRC32C checksum of data)Computes the CRC32C checksum of the supplied data and performs the "mask" operation on the computed checksum |
| pack-priv static int | calculateChecksum(ByteBuf
The input data to calculate the CRC32C checksum of data, int offset, int length)Computes the CRC32C checksum of the supplied data and performs the "mask" operation on the computed checksum |
| public void | |
| private static int | Returns: The number of bytes appended to the output buffer, or -1 to indicate "try again later"The tag used to identify this as a copy is also used to encode
the length and part of the offset tag, ByteBuf The input buffer to read from in, ByteBuf The output buffer to write to out, int writtenSoFar)Reads a compressed reference offset and length from the supplied input buffer, seeks back to the appropriate place in the input buffer and writes the found data to the supplied output stream. |
| private static int | Returns: The number of bytes appended to the output buffer, or -1 to indicate "try again later"The tag used to identify this as a copy is also used to encode
the length and part of the offset tag, ByteBuf The input buffer to read from in, ByteBuf The output buffer to write to out, int writtenSoFar)Reads a compressed reference offset and length from the supplied input buffer, seeks back to the appropriate place in the input buffer and writes the found data to the supplied output stream. |
| private static int | Returns: The number of bytes appended to the output buffer, or -1 to indicate "try again later"The tag used to identify this as a copy is also used to encode
the length and part of the offset tag, ByteBuf The input buffer to read from in, ByteBuf The output buffer to write to out, int writtenSoFar)Reads a compressed reference offset and length from the supplied input buffer, seeks back to the appropriate place in the input buffer and writes the found data to the supplied output stream. |
| pack-priv static int | Returns: The number of bytes appended to the output buffer, or -1 to indicate "try again later"The tag that identified this segment as a literal is also
used to encode part of the length of the data tag, ByteBuf The input buffer to read the literal from in, ByteBuf The output buffer to write the literal to out)Reads a literal from the input buffer directly to the output buffer. |
| public void | |
| private static void | encodeCopy(ByteBuf
The output buffer to write the copy pointer to out, int The offset at which the original instance lies offset, int The length of the original instance length)Encodes a series of copies, each at most 64 bytes in length. |
| private static void | |
| pack-priv static void | encodeLiteral(ByteBuf
The input buffer to copy from in, ByteBuf The output buffer to copy to out, int The length of the literal to copy length)Writes a literal to the supplied output buffer by directly copying from the input buffer. |
| private static int | Returns: The number of bytes for which our candidate copy is a repeat ofThe input buffer to scan over in, int The index in the input buffer to start scanning from minIndex, int The index of the start of our copy inIndex, int The length of our input buffer maxIndex)Iterates over the supplied input buffer between the supplied minIndex and maxIndex to find how long our matched copy overlaps with an already-written literal value. |
| private static short[] | Returns: An appropriately sized empty hashtableThe size of our input, ie. the number of bytes we need to encode inputSize)Creates an appropriately sized hashtable for the given input size |
| pack-priv int | Returns: The calculated length based on the input buffer, or 0 if no preamble is able to be calculatedThe input buffer to get the preamble from in)Get the length varint (a series of bytes, where the lower 7 bits are data and the upper bit is a flag to indicate more bytes to be read). |
| private static int | Returns: A 32-bit hash of 4 bytes located at indexThe input buffer to read 4 bytes from in, int The index to read at index, int The shift value, for ensuring that the resulting value is
within the range of our hash table size shift)Hashes the 4 bytes located at index, shifting the resulting hash into the appropriate range for our hash table. |
| pack-priv static int | Returns: The masked checksumThe actual checksum of the data checksum)From the spec: "Checksums are not stored directly, but masked, as checksumming data and then its own checksum can be problematic. |
| private static int | Returns: The calculated length based on the input buffer, or 0 if no preamble is able to be calculatedThe input buffer to read the preamble from in)Reads the length varint (a series of bytes, where the lower 7 bits are data and the upper bit is a flag to indicate more bytes to be read). |
| public void | |
| pack-priv static void | validateChecksum(int
The checksum decoded from the stream to compare against expectedChecksum, ByteBuf The input data to calculate the CRC32C checksum of data)Computes the CRC32C checksum of the supplied data, performs the "mask" operation on the computed checksum, and then compares the resulting masked checksum to the supplied checksum. |
| pack-priv static void | validateChecksum(int
The checksum decoded from the stream to compare against expectedChecksum, ByteBuf The input data to calculate the CRC32C checksum of data, int offset, int length)Computes the CRC32C checksum of the supplied data, performs the "mask" operation on the computed checksum, and then compares the resulting masked checksum to the supplied checksum. |
| private static void | validateOffset(int
The offset extracted from the compressed reference offset, int The number of bytes read so far from this chunk chunkSizeSoFar)Validates that the offset extracted from a compressed reference is within the permissible bounds of an offset (0 < offset < Integer.MAX_VALUE), and does not exceed the length of the chunk currently read so far. |
| COPY_1_BYTE_OFFSET | back to summary |
|---|---|
| private static final int COPY_1_BYTE_OFFSET | |
| COPY_2_BYTE_OFFSET | back to summary |
|---|---|
| private static final int COPY_2_BYTE_OFFSET | |
| COPY_4_BYTE_OFFSET | back to summary |
|---|---|
| private static final int COPY_4_BYTE_OFFSET | |
| LITERAL | back to summary |
|---|---|
| private static final int LITERAL | |
| MAX_HT_SIZE | back to summary |
|---|---|
| private static final int MAX_HT_SIZE | |
| MIN_COMPRESSIBLE_BYTES | back to summary |
|---|---|
| private static final int MIN_COMPRESSIBLE_BYTES | |
| NOT_ENOUGH_INPUT | back to summary |
|---|---|
| private static final int NOT_ENOUGH_INPUT | |
| PREAMBLE_NOT_FULL | back to summary |
|---|---|
| private static final int PREAMBLE_NOT_FULL | |
| state | back to summary |
|---|---|
| private Snappy. | |
| tag | back to summary |
|---|---|
| private byte tag | |
| written | back to summary |
|---|---|
| private int written | |
| Snappy | back to summary |
|---|---|
| public Snappy() | |
| bitsToEncode | back to summary |
|---|---|
| private static int bitsToEncode(int value) Calculates the minimum number of bits required to encode a value. This can then in turn be used to calculate the number of septets or octets (as appropriate) to use to encode a length parameter.
| |
| calculateChecksum | back to summary |
|---|---|
| pack-priv static int calculateChecksum(ByteBuf data) Computes the CRC32C checksum of the supplied data and performs the "mask" operation on the computed checksum
| |
| calculateChecksum | back to summary |
|---|---|
| pack-priv static int calculateChecksum(ByteBuf data, int offset, int length) Computes the CRC32C checksum of the supplied data and performs the "mask" operation on the computed checksum
| |
| decode | back to summary |
|---|---|
| public void decode(ByteBuf in, ByteBuf out) | |
| decodeCopyWith1ByteOffset | back to summary |
|---|---|
| private static int decodeCopyWith1ByteOffset(byte tag, ByteBuf in, ByteBuf out, int writtenSoFar) Reads a compressed reference offset and length from the supplied input buffer, seeks back to the appropriate place in the input buffer and writes the found data to the supplied output stream.
| |
| decodeCopyWith2ByteOffset | back to summary |
|---|---|
| private static int decodeCopyWith2ByteOffset(byte tag, ByteBuf in, ByteBuf out, int writtenSoFar) Reads a compressed reference offset and length from the supplied input buffer, seeks back to the appropriate place in the input buffer and writes the found data to the supplied output stream.
| |
| decodeCopyWith4ByteOffset | back to summary |
|---|---|
| private static int decodeCopyWith4ByteOffset(byte tag, ByteBuf in, ByteBuf out, int writtenSoFar) Reads a compressed reference offset and length from the supplied input buffer, seeks back to the appropriate place in the input buffer and writes the found data to the supplied output stream.
| |
| decodeLiteral | back to summary |
|---|---|
| pack-priv static int decodeLiteral(byte tag, ByteBuf in, ByteBuf out) Reads a literal from the input buffer directly to the output buffer. A "literal" is an uncompressed segment of data stored directly in the byte stream.
| |
| encode | back to summary |
|---|---|
| public void encode(final ByteBuf in, final ByteBuf out, final int length) | |
| encodeCopy | back to summary |
|---|---|
| private static void encodeCopy(ByteBuf out, int offset, int length) Encodes a series of copies, each at most 64 bytes in length.
| |
| encodeCopyWithOffset | back to summary |
|---|---|
| private static void encodeCopyWithOffset(ByteBuf out, int offset, int length) | |
| encodeLiteral | back to summary |
|---|---|
| pack-priv static void encodeLiteral(ByteBuf in, ByteBuf out, int length) Writes a literal to the supplied output buffer by directly copying from the input buffer. The literal is taken from the current readerIndex up to the supplied length. | |
| findMatchingLength | back to summary |
|---|---|
| private static int findMatchingLength(ByteBuf in, int minIndex, int inIndex, int maxIndex) Iterates over the supplied input buffer between the supplied minIndex and maxIndex to find how long our matched copy overlaps with an already-written literal value.
| |
| getHashTable | back to summary |
|---|---|
| private static short[] getHashTable(int inputSize) Creates an appropriately sized hashtable for the given input size
| |
| getPreamble | back to summary |
|---|---|
| pack-priv int getPreamble(ByteBuf in) Get the length varint (a series of bytes, where the lower 7 bits are data and the upper bit is a flag to indicate more bytes to be read).
| |
| hash | back to summary |
|---|---|
| private static int hash(ByteBuf in, int index, int shift) Hashes the 4 bytes located at index, shifting the resulting hash into the appropriate range for our hash table.
| |
| maskChecksum | back to summary |
|---|---|
| pack-priv static int maskChecksum(long checksum) From the spec: "Checksums are not stored directly, but masked, as checksumming data and then its own checksum can be problematic. The masking is the same as used in Apache Hadoop: Rotate the checksum by 15 bits, then add the constant 0xa282ead8 (using wraparound as normal for unsigned integers)."
| |
| readPreamble | back to summary |
|---|---|
| private static int readPreamble(ByteBuf in) Reads the length varint (a series of bytes, where the lower 7 bits are data and the upper bit is a flag to indicate more bytes to be read).
| |
| reset | back to summary |
|---|---|
| public void reset() | |
| validateChecksum | back to summary |
|---|---|
| pack-priv static void validateChecksum(int expectedChecksum, ByteBuf data) Computes the CRC32C checksum of the supplied data, performs the "mask" operation on the computed checksum, and then compares the resulting masked checksum to the supplied checksum.
| |
| validateChecksum | back to summary |
|---|---|
| pack-priv static void validateChecksum(int expectedChecksum, ByteBuf data, int offset, int length) Computes the CRC32C checksum of the supplied data, performs the "mask" operation on the computed checksum, and then compares the resulting masked checksum to the supplied checksum.
| |
| validateOffset | back to summary |
|---|---|
| private static void validateOffset(int offset, int chunkSizeSoFar) Validates that the offset extracted from a compressed reference is within the permissible bounds of an offset (0 < offset < Integer.MAX_VALUE), and does not exceed the length of the chunk currently read so far.
| |
| Modifier and Type | Field and Description |
|---|---|
| public static final Snappy. | |
| public static final Snappy. | |
| public static final Snappy. | |
| public static final Snappy. |
| Access | Constructor and Description |
|---|---|
| private |
| Modifier and Type | Method and Description |
|---|---|
| public static Snappy. | |
| public static Snappy. |
| READING_COPY | back to summary |
|---|---|
| public static final Snappy. | |
| READING_LITERAL | back to summary |
|---|---|
| public static final Snappy. | |
| READING_PREAMBLE | back to summary |
|---|---|
| public static final Snappy. | |
| READING_TAG | back to summary |
|---|---|
| public static final Snappy. | |
| State | back to summary |
|---|---|
| private State() | |
| valueOf | back to summary |
|---|---|
| public static Snappy. | |
| values | back to summary |
|---|---|
| public static Snappy. | |