| /* Copyright 2015 Google Inc. All Rights Reserved. |
| |
| Distributed under MIT license. |
| See file LICENSE for detail or copy at https://opensource.org/licenses/MIT |
| */ |
| |
| package org.brotli.dec; |
| |
| import java.io.InputStream; |
| |
| final class State { |
| byte[] ringBuffer; |
| byte[] contextModes; |
| byte[] contextMap; |
| byte[] distContextMap; |
| byte[] output; |
| byte[] byteBuffer; // BitReader |
| |
| short[] shortBuffer; // BitReader |
| |
| int[] intBuffer; // BitReader |
| int[] rings; |
| int[] blockTrees; |
| int[] hGroup0; |
| int[] hGroup1; |
| int[] hGroup2; |
| |
| long accumulator64; // BitReader: pre-fetched bits. |
| |
| int runningState; // Default value is 0 == Decode.UNINITIALIZED |
| int nextRunningState; |
| int accumulator32; // BitReader: pre-fetched bits. |
| int bitOffset; // BitReader: bit-reading position in accumulator. |
| int halfOffset; // BitReader: offset of next item in intBuffer/shortBuffer. |
| int tailBytes; // BitReader: number of bytes in unfinished half. |
| int endOfStreamReached; // BitReader: input stream is finished. |
| int metaBlockLength; |
| int inputEnd; |
| int isUncompressed; |
| int isMetadata; |
| int literalBlockLength; |
| int numLiteralBlockTypes; |
| int commandBlockLength; |
| int numCommandBlockTypes; |
| int distanceBlockLength; |
| int numDistanceBlockTypes; |
| int pos; |
| int maxDistance; |
| int distRbIdx; |
| int trivialLiteralContext; |
| int literalTreeIndex; |
| int literalTree; |
| int j; |
| int insertLength; |
| int contextMapSlice; |
| int distContextMapSlice; |
| int contextLookupOffset1; |
| int contextLookupOffset2; |
| int treeCommandOffset; |
| int distanceCode; |
| int numDirectDistanceCodes; |
| int distancePostfixMask; |
| int distancePostfixBits; |
| int distance; |
| int copyLength; |
| int copyDst; |
| int maxBackwardDistance; |
| int maxRingBufferSize; |
| int ringBufferSize; |
| int expectedTotalSize; |
| int outputOffset; |
| int outputLength; |
| int outputUsed; |
| int bytesWritten; |
| int bytesToWrite; |
| |
| InputStream input; // BitReader |
| |
| State() { |
| this.ringBuffer = new byte[0]; |
| this.rings = new int[10]; |
| this.rings[0] = 16; |
| this.rings[1] = 15; |
| this.rings[2] = 11; |
| this.rings[3] = 4; |
| } |
| } |