Пример #1
0
 DirectWriter(IndexOutput output, long numValues, int bitsPerValue) {
   this.output = output;
   this.numValues = numValues;
   this.bitsPerValue = bitsPerValue;
   encoder = BulkOperation.of(PackedInts.Format.PACKED, bitsPerValue);
   iterations =
       encoder.computeIterations(
           (int) Math.min(numValues, Integer.MAX_VALUE), PackedInts.DEFAULT_BUFFER_SIZE);
   nextBlocks = new byte[iterations * encoder.byteBlockCount()];
   nextValues = new long[iterations * encoder.byteValueCount()];
 }
Пример #2
0
 private void flush() throws IOException {
   encoder.encode(nextValues, 0, nextBlocks, 0, iterations);
   final int blockCount =
       (int) PackedInts.Format.PACKED.byteCount(PackedInts.VERSION_CURRENT, off, bitsPerValue);
   output.writeBytes(nextBlocks, blockCount);
   Arrays.fill(nextValues, 0L);
   off = 0;
 }