Class PagedBytes

java.lang.Object
org.apache.lucene.util.PagedBytes

public final class PagedBytes extends Object
Represents a logical byte[] as a series of pages. You can write-once into the logical byte[] (append only), using copy, and then retrieve slices (BytesRef) into it using fill.
  • Constructor Details

    • PagedBytes

      public PagedBytes(int blockBits)
      1<<blockBits must be bigger than biggest single BytesRef slice that will be pulled
  • Method Details

    • copy

      public void copy(IndexInput in, long byteCount) throws IOException
      Read this many bytes from in
      Throws:
      IOException
    • copy

      public void copy(BytesRef bytes, BytesRef out)
      Copy BytesRef in, setting BytesRef out to the result. Do not use this if you will use freeze(true). This only supports bytes.length invalid input: '<'= blockSize
    • freeze

      public PagedBytes.Reader freeze(boolean trim)
      Commits final byte[], trimming it if necessary and if trim=true
    • getPointer

      public long getPointer()
    • ramBytesUsed

      public long ramBytesUsed()
      Return approx RAM usage in bytes.
    • copyUsingLengthPrefix

      public long copyUsingLengthPrefix(BytesRef bytes)
      Copy bytes in, writing the length as a 1 or 2 byte vInt prefix.
    • getDataInput

      public PagedBytes.PagedBytesDataInput getDataInput()
      Returns a DataInput to read values from this PagedBytes instance.
    • getDataOutput

      public PagedBytes.PagedBytesDataOutput getDataOutput()
      Returns a DataOutput that you may use to write into this PagedBytes instance. If you do this, you should not call the other writing methods (eg, copy); results are undefined.