java.lang.Object
org.apache.lucene.util.GroupVIntUtil
This class contains utility methods and constants for group varint
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Provides an abstraction for read int values, so that decoding logic can be reused in different DataInput. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final long[]
static final int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static int
numBytes
(int v) static void
readGroupVInt
(DataInput in, long[] dst, int offset) Default implementation of read single group, for optimal performance, you should useDataInput.readGroupVInts(long[], int)
instead.static int
readGroupVInt
(DataInput in, long remaining, GroupVIntUtil.IntReader reader, long pos, long[] dst, int offset) Faster implementation of read single group, It read values from the buffer that would not cross boundaries.private static long
readLongInGroup
(DataInput in, int numBytesMinus1) private static int
toInt
(long value) static void
writeGroupVInts
(DataOutput out, byte[] scratch, long[] values, int limit) The implementation for group-varint encoding, It uses a maximum ofMAX_LENGTH_PER_GROUP
bytes scratch buffer.
-
Field Details
-
MAX_LENGTH_PER_GROUP
public static final int MAX_LENGTH_PER_GROUP- See Also:
-
MASKS
private static final long[] MASKS
-
-
Constructor Details
-
GroupVIntUtil
public GroupVIntUtil()
-
-
Method Details
-
readGroupVInt
Default implementation of read single group, for optimal performance, you should useDataInput.readGroupVInts(long[], int)
instead.- Parameters:
dst
- the array to read ints into.offset
- the offset in the array to start storing ints.- Throws:
IOException
-
readLongInGroup
- Throws:
IOException
-
readGroupVInt
public static int readGroupVInt(DataInput in, long remaining, GroupVIntUtil.IntReader reader, long pos, long[] dst, int offset) throws IOException Faster implementation of read single group, It read values from the buffer that would not cross boundaries.- Parameters:
in
- the input to use to read data.remaining
- the number of remaining bytes allowed to read for current block/segment.reader
- the supplier of read int.pos
- the start pos to read from the reader.dst
- the array to read ints into.offset
- the offset in the array to start storing ints.- Returns:
- the number of bytes read excluding the flag. this indicates the number of positions
should to be increased for caller, it is 0 or positive number and less than
MAX_LENGTH_PER_GROUP
- Throws:
IOException
-
numBytes
private static int numBytes(int v) -
toInt
private static int toInt(long value) -
writeGroupVInts
public static void writeGroupVInts(DataOutput out, byte[] scratch, long[] values, int limit) throws IOException The implementation for group-varint encoding, It uses a maximum ofMAX_LENGTH_PER_GROUP
bytes scratch buffer.- Throws:
IOException
-