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;
}