Class BlockLine.Serializer

  • All Implemented Interfaces:
    Accountable
    Direct Known Subclasses:
    STBlockLine.Serializer
    Enclosing class:
    BlockLine

    public static class BlockLine.Serializer
    extends Object
    implements Accountable
    Reads/writes block lines with terms encoded incrementally inside a block. This class keeps a state of the previous term read to decode the next term.
    • Field Detail

      • currentTerm

        protected final BytesRef currentTerm
    • Constructor Detail

      • Serializer

        public Serializer()
    • Method Detail

      • readLine

        public BlockLine readLine​(DataInput blockInput,
                                  boolean isIncrementalEncodingSeed,
                                  BlockLine reuse)
                           throws IOException
        Reads the current line.
        Parameters:
        isIncrementalEncodingSeed - Whether the term is a seed of the incremental encoding. true for the first and middle term, false for other terms.
        reuse - A BlockLine instance to reuse; or null if none.
        Throws:
        IOException
      • writeLine

        public void writeLine​(DataOutput blockOutput,
                              BlockLine line,
                              BlockLine previousLine,
                              int termStateRelativeOffset,
                              boolean isIncrementalEncodingSeed)
                       throws IOException
        Writes a line and its offset to the corresponding term state details in the details region.
        Parameters:
        blockOutput - The output pointing to the block terms region.
        termStateRelativeOffset - The offset to the corresponding term state details in the details region.
        isIncrementalEncodingSeed - Whether the term is a seed of the incremental encoding. true for the first and middle term, false for other terms.
        Throws:
        IOException
      • numBitsToEncode

        protected static int numBitsToEncode​(int i)
        Gets the number of bits required to encode the value of the provided int. Returns 0 for int value 0. Equivalent to (log2(i) + 1).