public List fetchChunkOffsetListByChunkGroupOffset()

in tsfile-viewer-core/src/main/java/org/apache/iotdb/tool/core/service/TsFileAnalyserV13.java [990:1019]


  public List<ChunkOffsetInfo> fetchChunkOffsetListByChunkGroupOffset(long offset)
      throws InterruptedException, IOException {
    countDownLatch.await();
    List<ChunkOffsetInfo> chunkOffsetInfoList = new ArrayList<>();
    reader.position(offset);
    ChunkGroupHeader chunkGroupHeader = reader.readChunkGroupHeader();
    byte marker;
    ChunkHeader chunkHeader;
    while (((marker = reader.readMarker()) != MetaMarker.CHUNK_GROUP_HEADER)
        && (marker != MetaMarker.OPERATION_INDEX_RANGE)
        && (marker != MetaMarker.SEPARATOR)) {
      ChunkOffsetInfo chunkOffsetInfo = new ChunkOffsetInfo();
      long chunkOffset = reader.position() - 1;
      chunkHeader = reader.readChunkHeader(marker);
      // aligned 对齐的时间序列,第一个chunk是VECTOR
      if (chunkHeader.getDataType() == TSDataType.VECTOR) {
        chunkOffsetInfo.setAligned(true);
      }

      if (chunkOffsetInfoList.size() != 0) {
        chunkOffsetInfo.setAligned(chunkOffsetInfoList.get(0).isAligned());
      }

      chunkOffsetInfo.setMeasurementId(chunkHeader.getMeasurementID());
      chunkOffsetInfo.setOffset(chunkOffset);
      chunkOffsetInfoList.add(chunkOffsetInfo);
      reader.position(reader.position() + chunkHeader.getDataSize());
    }
    return chunkOffsetInfoList;
  }