Package org.codehaus.stax2.ri
Class Stax2Util.ByteAggregator
java.lang.Object
org.codehaus.stax2.ri.Stax2Util.ByteAggregator
- Enclosing class:
Stax2Util
Helper class for efficiently reading and aggregating variable length
byte content.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final int
Maximum block size we will use for individual non-aggregated blocks.private static final int
Size of the first block we will allocate.private int
private byte[][]
private byte[]
Reusable byte buffer block; we retain biggest one frommBlocks
after aggregation.private int
private static final byte[]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]
addFullBlock
(byte[] block) Method used to add bufferful of data to the aggregator, and get another buffer to read more data into.byte[]
aggregateAll
(byte[] lastBlock, int lastLen) Method called when results are finalized and we can get the full aggregated result buffer to return to the callerbyte[]
Method called to initialize aggregation process.
-
Field Details
-
NO_BYTES
private static final byte[] NO_BYTES -
INITIAL_BLOCK_SIZE
private static final int INITIAL_BLOCK_SIZESize of the first block we will allocate.- See Also:
-
DEFAULT_BLOCK_ARRAY_SIZE
static final int DEFAULT_BLOCK_ARRAY_SIZEMaximum block size we will use for individual non-aggregated blocks. Let's limit to using 256k chunks.- See Also:
-
mBlocks
private byte[][] mBlocks -
mBlockCount
private int mBlockCount -
mTotalLen
private int mTotalLen -
mSpareBlock
private byte[] mSpareBlockReusable byte buffer block; we retain biggest one frommBlocks
after aggregation.
-
-
Constructor Details
-
ByteAggregator
public ByteAggregator()
-
-
Method Details
-
startAggregation
public byte[] startAggregation()Method called to initialize aggregation process.- Returns:
- Block that can be used to read in content
-
addFullBlock
public byte[] addFullBlock(byte[] block) Method used to add bufferful of data to the aggregator, and get another buffer to read more data into. Returned buffer is generally as big as or bigger than the given buffer, to try to improve performance for larger aggregations.- Returns:
- Buffer in which to read additional data
-
aggregateAll
public byte[] aggregateAll(byte[] lastBlock, int lastLen) Method called when results are finalized and we can get the full aggregated result buffer to return to the caller
-