Class PagedBytes


  • public final class PagedBytes
    extends java.lang.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 Detail

      • PagedBytes

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

      • copy

        public void copy​(IndexInput in,
                         long byteCount)
                  throws java.io.IOException
        Read this many bytes from in
        Throws:
        java.io.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()
        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.
      • 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.