/// <summary> /// Create a new <see cref="ForUtil"/> instance and save state into <paramref name="out"/>. /// </summary> internal ForUtil(float acceptableOverheadRatio, DataOutput @out) { @out.WriteVInt32(PackedInt32s.VERSION_CURRENT); encodedSizes = new int[33]; encoders = new PackedInt32s.IEncoder[33]; decoders = new PackedInt32s.IDecoder[33]; iterations = new int[33]; for (int bpv = 1; bpv <= 32; ++bpv) { PackedInt32s.FormatAndBits formatAndBits = PackedInt32s.FastestFormatAndBits(Lucene41PostingsFormat.BLOCK_SIZE, bpv, acceptableOverheadRatio); Debug.Assert(formatAndBits.Format.IsSupported(formatAndBits.BitsPerValue)); Debug.Assert(formatAndBits.BitsPerValue <= 32); encodedSizes[bpv] = EncodedSize(formatAndBits.Format, PackedInt32s.VERSION_CURRENT, formatAndBits.BitsPerValue); encoders[bpv] = PackedInt32s.GetEncoder(formatAndBits.Format, PackedInt32s.VERSION_CURRENT, formatAndBits.BitsPerValue); decoders[bpv] = PackedInt32s.GetDecoder(formatAndBits.Format, PackedInt32s.VERSION_CURRENT, formatAndBits.BitsPerValue); iterations[bpv] = ComputeIterations(decoders[bpv]); @out.WriteVInt32(formatAndBits.Format.Id << 5 | (formatAndBits.BitsPerValue - 1)); } }
internal PagedMutable(long size, int pageSize, PackedInt32s.FormatAndBits formatAndBits) : this(size, pageSize, formatAndBits.BitsPerValue, formatAndBits.Format) { }