private void writeHeaderLong(FileSmoosher smoosher, int bagSizePower) throws IOException { ByteBuffer helperBuffer = ByteBuffer.allocate(Integer.BYTES).order(ByteOrder.nativeOrder()); int numberOfElementsPerValueFile = 1 << bagSizePower; long currentNumBytes = 0; long relativeRefBytes = 0; long relativeNumBytes; try (SmooshedWriter smooshChannel = smoosher .addWithSmooshedWriter(generateHeaderFileName(filenameBase), numWritten * Integer.BYTES)) { // following block converts long header indexes into int header indexes. for (int pos = 0; pos < numWritten; pos++) { //conversion of header offset from long to int completed for one value file done, change relativeRefBytes // to current offset. if ((pos & (numberOfElementsPerValueFile - 1)) == 0) { relativeRefBytes = currentNumBytes; } currentNumBytes = headerOutLong.getLong(pos); relativeNumBytes = currentNumBytes - relativeRefBytes; helperBuffer.putInt(0, Ints.checkedCast(relativeNumBytes)); helperBuffer.clear(); smooshChannel.write(helperBuffer); } } }
valueBuffersToUse[i] = valueBuffer.asReadOnlyBuffer(); ByteBuffer headerBuffer = fileMapper.mapFile(GenericIndexedWriter.generateHeaderFileName(columnName)); return new GenericIndexed<>( valueBuffersToUse,
private void writeHeaderLong(FileSmoosher smoosher, int bagSizePower) throws IOException { ByteBuffer helperBuffer = ByteBuffer.allocate(Integer.BYTES).order(ByteOrder.nativeOrder()); int numberOfElementsPerValueFile = 1 << bagSizePower; long currentNumBytes = 0; long relativeRefBytes = 0; long relativeNumBytes; try (SmooshedWriter smooshChannel = smoosher .addWithSmooshedWriter(generateHeaderFileName(filenameBase), numWritten * Integer.BYTES)) { // following block converts long header indexes into int header indexes. for (int pos = 0; pos < numWritten; pos++) { //conversion of header offset from long to int completed for one value file done, change relativeRefBytes // to current offset. if ((pos & (numberOfElementsPerValueFile - 1)) == 0) { relativeRefBytes = currentNumBytes; } currentNumBytes = headerOutLong.getLong(pos); relativeNumBytes = currentNumBytes - relativeRefBytes; helperBuffer.putInt(0, Ints.checkedCast(relativeNumBytes)); helperBuffer.clear(); smooshChannel.write(helperBuffer); } } }
valueBuffersToUse[i] = valueBuffer.asReadOnlyBuffer(); ByteBuffer headerBuffer = fileMapper.mapFile(GenericIndexedWriter.generateHeaderFileName(columnName)); return new GenericIndexed<>( valueBuffersToUse,