Package org.HdrHistogram
Class ZigZagEncoding
java.lang.Object
org.HdrHistogram.ZigZagEncoding
This class provides encoding and decoding methods for writing and reading
ZigZag-encoded LEB128-64b9B-variant (Little Endian Base 128) values to/from a
ByteBuffer. LEB128's variable length encoding provides for using a
smaller number 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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static intgetInt(ByteBuffer buffer) Read an LEB128-64b9B ZigZag encoded int value from the given buffer(package private) static longgetLong(ByteBuffer buffer) Read an LEB128-64b9B ZigZag encoded long value from the given buffer(package private) static voidputInt(ByteBuffer buffer, int value) Writes an int value to the given buffer in LEB128-64b9B ZigZag encoded format(package private) static voidputLong(ByteBuffer buffer, long value) Writes a long value to the given buffer in LEB128 ZigZag encoded format
-
Constructor Details
-
ZigZagEncoding
ZigZagEncoding()
-
-
Method Details
-
putLong
Writes a long value to the given buffer in LEB128 ZigZag encoded format- Parameters:
buffer- the buffer to write tovalue- the value to write to the buffer
-
putInt
Writes an int value to the given buffer in LEB128-64b9B ZigZag encoded format- Parameters:
buffer- the buffer to write tovalue- the value to write to the buffer
-
getLong
Read an LEB128-64b9B ZigZag encoded long value from the given buffer- Parameters:
buffer- the buffer to read from- Returns:
- the value read from the buffer
-
getInt
Read an LEB128-64b9B ZigZag encoded int value from the given buffer- Parameters:
buffer- the buffer to read from- Returns:
- the value read from the buffer
-