Package org.apache.lucene.codecs.uniformsplit

# Class DeltaBaseTermStateSerializer

java.lang.Object
org.apache.lucene.codecs.uniformsplit.DeltaBaseTermStateSerializer

All Implemented Interfaces:
  `Accountable`

public class DeltaBaseTermStateSerializer extends Object implements Accountable
`TermState` serializer which encodes each file pointer as a delta relative to a base file pointer. It differs from `Lucene103PostingsWriter.encodeTerm(org.apache.lucene.store.DataOutput, org.apache.lucene.index.FieldInfo, org.apache.lucene.codecs.BlockTermState, boolean)` which encodes each file pointer as a delta relative to the previous file pointer.

It automatically sets the base file pointer to the first valid file pointer for doc start FP, pos start FP, pay start FP. These base file pointers have to be `reset` by the caller before starting to write a new block.

WARNING: This API is experimental and might change in incompatible ways in the next release.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected long`
  `baseDocStartFP`
  `protected long`
  `basePayStartFP`
  `protected long`
  `basePosStartFP`

  ### Fields inherited from interface org.apache.lucene.util.Accountable

  `NULL_ACCOUNTABLE`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DeltaBaseTermStateSerializer()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `getBaseDocStartFP()`
  `long`
  `getBasePayStartFP()`
  `long`
  `getBasePosStartFP()`
  `long`
  `ramBytesUsed()`
  `static long`
  `ramBytesUsed(TermState termState)`
  `BlockTermState`
  `readTermState(long baseDocStartFP, long basePosStartFP, long basePayStartFP, DataInput termStatesInput, FieldInfo fieldInfo, BlockTermState reuse)`
  Reads a `BlockTermState` from the provided `DataInput`.
  `protected Lucene103PostingsFormat.IntBlockTermState`
  `reset(Lucene103PostingsFormat.IntBlockTermState termState)`
  `void`
  `resetBaseStartFP()`
  Resets the base file pointers to 0.
  `void`
  `writeTermState(DataOutput termStatesOutput, FieldInfo fieldInfo, BlockTermState termState)`
  Writes a `BlockTermState` to the provided `DataOutput`.

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

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

  ### Methods inherited from interface org.apache.lucene.util.Accountable

  `getChildResources`

- ## Field Details

  - ### baseDocStartFP

    protected long baseDocStartFP

  - ### basePosStartFP

    protected long basePosStartFP

  - ### basePayStartFP

    protected long basePayStartFP

- ## Constructor Details

  - ### DeltaBaseTermStateSerializer

    public DeltaBaseTermStateSerializer()

- ## Method Details

  - ### resetBaseStartFP

    public void resetBaseStartFP()
    Resets the base file pointers to 0. This method has to be called before starting to write a new block.

  - ### getBaseDocStartFP

    public long getBaseDocStartFP()
    Returns:
      The base doc start file pointer. It is the file pointer of the first `TermState` written after `resetBaseStartFP()` is called.

  - ### getBasePosStartFP

    public long getBasePosStartFP()
    Returns:
      The base position start file pointer. It is the file pointer of the first `TermState` written after `resetBaseStartFP()` is called.

  - ### getBasePayStartFP

    public long getBasePayStartFP()
    Returns:
      The base payload start file pointer. It is the file pointer of the first `TermState` written after `resetBaseStartFP()` is called.

  - ### writeTermState

    public void writeTermState(DataOutput termStatesOutput, FieldInfo fieldInfo, BlockTermState termState) throws IOException
    Writes a `BlockTermState` to the provided `DataOutput`.

    Simpler variant of `Lucene103PostingsWriter.encodeTerm(DataOutput, FieldInfo, BlockTermState, boolean)`.

    Throws:
      `IOException`

  - ### readTermState

    public BlockTermState readTermState(long baseDocStartFP, long basePosStartFP, long basePayStartFP, DataInput termStatesInput, FieldInfo fieldInfo, BlockTermState reuse) throws IOException
    Reads a `BlockTermState` from the provided `DataInput`.

    Simpler variant of `Lucene103PostingsReader.decodeTerm(DataInput, FieldInfo, BlockTermState, boolean)`.

    Parameters:
      `reuse` - `BlockTermState` to reuse; or null to create a new one.
    Throws:
      `IOException`

  - ### reset

    protected Lucene103PostingsFormat.IntBlockTermState reset(Lucene103PostingsFormat.IntBlockTermState termState)

  - ### ramBytesUsed

    public long ramBytesUsed()
    Specified by:
      `ramBytesUsed` in interface `Accountable`

  - ### ramBytesUsed

    public static long ramBytesUsed(TermState termState)
    Returns:
      The estimated RAM usage of the given `TermState`.