class ZigZagEncoding
extends java.lang.Object
ByteBuffer
. LEB128's variable length encoding provides for using a
smaller nuber of bytes for smaller values, and the use of ZigZag encoding
allows small (closer to zero) negative values to use fewer bytes. Details
on both LEB128 and ZigZag can be readily found elsewhere.
The LEB128-64b9B-variant encoding used here diverges from the "original"
LEB128 as it extends to 64 bit values: In the original LEB128, a 64 bit
value can take up to 10 bytes in the stream, where this variant's encoding
of a 64 bit values will max out at 9 bytes.
As such, this encoder/decoder should NOT be used for encoding or decoding
"standard" LEB128 formats (e.g. Google Protocol Buffers).Constructor and Description |
---|
ZigZagEncoding() |
Modifier and Type | Method and Description |
---|---|
(package private) static int |
getInt(java.nio.ByteBuffer buffer)
Read an LEB128-64b9B ZigZag encoded int value from the given buffer
|
(package private) static long |
getLong(java.nio.ByteBuffer buffer)
Read an LEB128-64b9B ZigZag encoded long value from the given buffer
|
(package private) static void |
putInt(java.nio.ByteBuffer buffer,
int value)
Writes an int value to the given buffer in LEB128-64b9B ZigZag encoded format
|
(package private) static void |
putLong(java.nio.ByteBuffer buffer,
long value)
Writes a long value to the given buffer in LEB128 ZigZag encoded format
|
static void putLong(java.nio.ByteBuffer buffer, long value)
buffer
- the buffer to write tovalue
- the value to write to the bufferstatic void putInt(java.nio.ByteBuffer buffer, int value)
buffer
- the buffer to write tovalue
- the value to write to the bufferstatic long getLong(java.nio.ByteBuffer buffer)
buffer
- the buffer to read fromstatic int getInt(java.nio.ByteBuffer buffer)
buffer
- the buffer to read from