Package org.HdrHistogram
Class ZigZagEncoding
- java.lang.Object
-
- org.HdrHistogram.ZigZagEncoding
-
class ZigZagEncoding extends java.lang.Object
This class provides encoding and decoding methods for writing and reading ZigZag-encoded LEB128-64b9B-variant (Little Endian Base 128) values to/from aByteBuffer
. 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 Summary
Constructors Constructor Description ZigZagEncoding()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method 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
-
-
-
Method Detail
-
putLong
static void putLong(java.nio.ByteBuffer buffer, long value)
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
static void putInt(java.nio.ByteBuffer buffer, int value)
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
static long getLong(java.nio.ByteBuffer buffer)
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
static int getInt(java.nio.ByteBuffer buffer)
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
-
-