public TimeSeriesMetadataNode getAllTimeseriesMetadataWithOffset()

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


    public TimeSeriesMetadataNode getAllTimeseriesMetadataWithOffset() throws IOException {
      if (tsFileMetaData == null) {
        readFileMetadata();
        logger.info("Start reading TsFileMetadata, preparing to deserialized index.");
      }
      MetadataIndexNode metadataIndexNode = tsFileMetaData.getMetadataIndex();
      TimeSeriesMetadataNode node = new TimeSeriesMetadataNode();
      List<MetadataIndexEntry> metadataIndexEntryList = metadataIndexNode.getChildren();
      for (int i = 0; i < metadataIndexEntryList.size(); i++) {
        rateOfProcess =
            loadOfPercent
                + parseOfPercent
                + (i + 1) / metadataIndexEntryList.size() * indexOfPercent;
        TimeSeriesMetadataNode entry = new TimeSeriesMetadataNode();
        MetadataIndexEntry metadataIndexEntry = metadataIndexEntryList.get(i);
        long endOffset = tsFileMetaData.getMetadataIndex().getEndOffset();
        if (i != metadataIndexEntryList.size() - 1) {
          endOffset = metadataIndexEntryList.get(i + 1).getOffset();
        }
        ByteBuffer buffer = readData(metadataIndexEntry.getOffset(), endOffset);
        generateMetadataIndexWithOffset(
            metadataIndexEntry.getOffset(),
            metadataIndexEntry,
            buffer,
            null,
            metadataIndexNode.getNodeType(),
            timeseriesMetadataMap,
            entry,
            true);
        node.getChildren().add(entry);
      }
      node.setNodeType(metadataIndexNode.getNodeType());
      node.setPosition(reader.getFileMetadataPos());

      return node;
    }