Class PagedBytes

java.lang.Object
org.apache.lucene.util.PagedBytes
All Implemented Interfaces:
Accountable

public final class PagedBytes extends Object implements Accountable
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.
NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.
  • 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 <= 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()
      Description copied from interface: Accountable
      Return the memory usage of this object in bytes. Negative values are illegal.
      Specified by:
      ramBytesUsed in interface Accountable
    • 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.