java.lang.Object
org.apache.lucene.util.PagedBytes
- All Implemented Interfaces:
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.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionfinal classInput that transparently iterates over pagesfinal classOutput that transparently spills to new pages as necessarystatic final classProvides methods to read BytesRefs from a frozen PagedBytes. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final longprivate final intprivate final intprivate byte[][]private final intprivate final longprivate byte[]private booleanprivate static final byte[]private booleanprivate intprivate intFields inherited from interface org.apache.lucene.util.Accountable
NULL_ACCOUNTABLE -
Constructor Summary
ConstructorsConstructorDescriptionPagedBytes(int blockBits) 1<<blockBits must be bigger than biggest single BytesRef slice that will be pulled -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddBlock(byte[] block) voidcopy(IndexInput in, long byteCount) Read this many bytes from invoidCopy BytesRef in, setting BytesRef out to the result.longcopyUsingLengthPrefix(BytesRef bytes) Copy bytes in, writing the length as a 1 or 2 byte vInt prefix.freeze(boolean trim) Commits final byte[], trimming it if necessary and if trim=trueReturns a DataInput to read values from this PagedBytes instance.Returns a DataOutput that you may use to write into this PagedBytes instance.longlongReturn the memory usage of this object in bytes.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.lucene.util.Accountable
getChildResources
-
Field Details
-
BASE_RAM_BYTES_USED
private static final long BASE_RAM_BYTES_USED -
blocks
private byte[][] blocks -
numBlocks
private int numBlocks -
blockSize
private final int blockSize -
blockBits
private final int blockBits -
blockMask
private final int blockMask -
didSkipBytes
private boolean didSkipBytes -
frozen
private boolean frozen -
upto
private int upto -
currentBlock
private byte[] currentBlock -
bytesUsedPerBlock
private final long bytesUsedPerBlock -
EMPTY_BYTES
private static final byte[] EMPTY_BYTES
-
-
Constructor Details
-
PagedBytes
public PagedBytes(int blockBits) 1<<blockBits must be bigger than biggest single BytesRef slice that will be pulled
-
-
Method Details
-
addBlock
private void addBlock(byte[] block) -
copy
Read this many bytes from in- Throws:
IOException
-
copy
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
Commits final byte[], trimming it if necessary and if trim=true -
getPointer
public long getPointer() -
ramBytesUsed
public long ramBytesUsed()Description copied from interface:AccountableReturn the memory usage of this object in bytes. Negative values are illegal.- Specified by:
ramBytesUsedin interfaceAccountable
-
copyUsingLengthPrefix
Copy bytes in, writing the length as a 1 or 2 byte vInt prefix. -
getDataInput
Returns a DataInput to read values from this PagedBytes instance. -
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.
-