Class 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 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​(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.
      • 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.