Package org.apache.lucene.backward_codecs.packed

# Class LegacyDirectWriter

java.lang.Object
org.apache.lucene.backward_codecs.packed.LegacyDirectWriter

public final class LegacyDirectWriter extends Object
Class for writing packed integers to be directly read from Directory. Integers can be read on-the-fly via `LegacyDirectReader`.

Unlike PackedInts, it optimizes for read i/o operations and supports > 2B values. Example usage:

       int bitsPerValue = LegacyDirectWriter.bitsRequired(100); // values up to and including 100
       IndexOutput output = dir.createOutput("packed", IOContext.DEFAULT);
       DirectWriter writer = LegacyDirectWriter.getInstance(output, numberOfValues, bitsPerValue);
       for (int i = 0; i < numberOfValues; i++) {
         writer.add(value);
       }
       writer.finish();
       output.close();

See Also:
  - `LegacyDirectReader`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `add(long l)`
  Adds a value to this writer
  `static int`
  `bitsRequired(long maxValue)`
  Returns how many bits are required to hold values up to and including maxValue
  `void`
  `finish()`
  finishes writing
  `static LegacyDirectWriter`
  `getInstance(DataOutput output, long numValues, int bitsPerValue)`
  Returns an instance suitable for encoding `numValues` using `bitsPerValue`
  `static int`
  `unsignedBitsRequired(long maxValue)`
  Returns how many bits are required to hold values up to and including maxValue, interpreted as an unsigned value.

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

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

- ## Method Details

  - ### add

    public void add(long l) throws IOException
    Adds a value to this writer
    Throws:
      `IOException`

  - ### finish

    public void finish() throws IOException
    finishes writing
    Throws:
      `IOException`

  - ### getInstance

    public static LegacyDirectWriter getInstance(DataOutput output, long numValues, int bitsPerValue)
    Returns an instance suitable for encoding `numValues` using `bitsPerValue`

  - ### bitsRequired

    public static int bitsRequired(long maxValue)
    Returns how many bits are required to hold values up to and including maxValue
    Parameters:
      `maxValue` - the maximum value that should be representable.
    Returns:
      the amount of bits needed to represent values from 0 to maxValue.
    See Also:
      - `PackedInts.bitsRequired(long)`

  - ### unsignedBitsRequired

    public static int unsignedBitsRequired(long maxValue)
    Returns how many bits are required to hold values up to and including maxValue, interpreted as an unsigned value.
    Parameters:
      `maxValue` - the maximum value that should be representable.
    Returns:
      the amount of bits needed to represent values from 0 to maxValue.
    See Also:
      - `PackedInts.unsignedBitsRequired(long)`