|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.lucene.util.packed.BlockPackedWriter
public final class BlockPackedWriter
A writer for large sequences of longs.
The sequence is divided into fixed-size blocks and for each block, the difference between each value and the minimum value of the block is encoded using as few bits as possible. Memory usage of this class is proportional to the block size. Each block has an overhead between 1 and 10 bytes to store the minimum value and the number of bits per value of the block.
Format:
byte
, first 7 bits are the
number of bits per value (bitsPerValue). If the 8th bit is 1,
then MinValue (see next) is 0, otherwise MinValue and needs to
be decoded
variable-length long
whose value
should be added to every int from the block to restore the original
values
packed ints
encoded on exactly bitsPerValue
bits per value. They are the subtraction of the original values and
MinValue
BlockPackedReaderIterator
,
BlockPackedReader
Field Summary | |
---|---|
protected byte[] |
blocks
|
protected boolean |
finished
|
protected int |
off
|
protected long |
ord
|
protected DataOutput |
out
|
protected long[] |
values
|
Constructor Summary | |
---|---|
BlockPackedWriter(DataOutput out,
int blockSize)
Sole constructor. |
Method Summary | |
---|---|
void |
add(long l)
Append a new long. |
void |
finish()
Flush all buffered data to disk. |
protected void |
flush()
|
long |
ord()
Return the number of values which have been added. |
void |
reset(DataOutput out)
Reset this writer to wrap out . |
protected void |
writeValues(int bitsRequired)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected DataOutput out
protected final long[] values
protected byte[] blocks
protected int off
protected long ord
protected boolean finished
Constructor Detail |
---|
public BlockPackedWriter(DataOutput out, int blockSize)
blockSize
- the number of values of a single block, must be a power of 2Method Detail |
---|
protected void flush() throws IOException
IOException
public void reset(DataOutput out)
out
. The block size remains unchanged.
public void add(long l) throws IOException
IOException
public void finish() throws IOException
reset(DataOutput)
has
been called.
IOException
public long ord()
protected final void writeValues(int bitsRequired) throws IOException
IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |