/*
* Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved.
*/
package brotli4cj
import std.io.*
public class State {
var ringBuffer: Array<UInt8> = []
var contextModes: Array<UInt8> = []
var contextMap: Array<UInt8> = []
var distContextMap: Array<UInt8> = []
var distExtraBits: Array<UInt8> = []
var output: Array<UInt8> = []
var byteBuffer: Array<UInt8> = []
var shortBuffer: Array<Int16> = []
var intBuffer: Array<Int32> = []
var rings: Array<Int32> = []
var blockTrees: Array<Int32> = []
var literalTreeGroup: Array<Int32> = []
var commandTreeGroup: Array<Int32> = []
var distanceTreeGroup: Array<Int32> = []
var distOffset: Array<Int32> = []
var accumulator64: Int64 = 0
var runningState: Int32 = 0
var nextRunningState: Int32 = 0
var accumulator32: Int32 = 0
var bitOffset: Int32 = 0
var halfOffset: Int32 = 0
var tailBytes: Int32 = 0
var endOfStreamReached: Int32 = 0
var metaBlockLength: Int32 = 0
var inputEnd: Int32 = 0
var isUncompressed: Int32 = 0
var isMetadata: Int32 = 0
var literalBlockLength: Int32 = 0
var numLiteralBlockTypes: Int32 = 0
var commandBlockLength: Int32 = 0
var numCommandBlockTypes: Int32 = 0
var distanceBlockLength: Int32 = 0
var numDistanceBlockTypes: Int32 = 0
var pos: Int32 = 0
var maxDistance: Int32 = 0
var distRbIdx: Int32 = 0
var trivialLiteralContext: Int32 = 0
var literalTreeIdx: Int32 = 0
var commandTreeIdx: Int32 = 0
var j: Int32 = 0
var insertLength: Int32 = 0
var contextMapSlice: Int32 = 0
var distContextMapSlice: Int32 = 0
var contextLookupOffset1: Int32 = 0
var contextLookupOffset2: Int32 = 0
var distanceCode: Int32 = 0
var numDirectDistanceCodes: Int32 = 0
var distancePostfixBits: Int32 = 0
var distance: Int32 = 0
var copyLength: Int32 = 0
var maxBackwardDistance: Int32 = 0
var maxRingBufferSize: Int32 = 0
var ringBufferSize: Int32 = 0
var expectedTotalSize: Int32 = 0
var outputOffset: Int32 = 0
var outputLength: Int32 = 0
var outputUsed: Int32 = 0
var ringBufferBytesWritten: Int32 = 0
var ringBufferBytesReady: Int32 = 0
var isEager: Int32 = 0
var isLargeWindow: Int32 = 0
var cdNumChunks: Int32 = 0
var cdTotalSize: Int32 = 0
var cdBrIndex: Int32 = 0
var cdBrOffset: Int32 = 0
var cdBrLength: Int32 = 0
var cdBrCopied: Int32 = 0
var cdChunks: Array<Array<UInt8>> = []
var cdChunkOffsets: Array<Int32> = []
var cdBlockBits: Int32 = 0
var cdBlockMap: Array<UInt8> = []
var input: ByteBuffer = Utils.makeEmptyInput()
init() {
this.ringBuffer = Array<UInt8>(0) { _ => 0 }
this.rings = Array<Int32>(10) { _ => 0 }
this.rings[0] = 16
this.rings[1] = 15
this.rings[2] = 11
this.rings[3] = 4
}
}