Package org.apache.lucene.util

## Class GroupVIntUtil

- java.lang.Object
- - org.apache.lucene.util.GroupVIntUtil

-     public final class GroupVIntUtil
      extends Object

  This class contains utility methods and constants for group varint
  NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static interface` | `GroupVIntUtil.IntReader` | Provides an abstraction for read int values, so that decoding logic can be reused in different DataInput.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `MAX_LENGTH_PER_GROUP` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `GroupVIntUtil()` |

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static void` | `readGroupVInt​(DataInput in, long[] dst, int offset)` | Default implementation of read single group, for optimal performance, you should use `DataInput.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.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### MAX_LENGTH_PER_GROUP

          public static final int MAX_LENGTH_PER_GROUP

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### GroupVIntUtil

          public GroupVIntUtil()

  - ### Method Detail

    - #### readGroupVInt

          public static void readGroupVInt​(DataInput in,
                                           long[] dst,
                                           int offset)
                                    throws IOException

      Default implementation of read single group, for optimal performance, you should use `DataInput.readGroupVInts(long[], int)` instead.
      Parameters:
        `dst` - the array to read ints into.
        `offset` - the offset in the array to start storing ints.
      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`