23cde7f4b8
TEST=reformatting only Change-Id: I310e2568661e919a2c8354e01e19d18f7109f54c Cq-Include-Trybots: luci.dart.try:pkg-linux-debug-try,pkg-linux-release-try,pkg-mac-release-arm64-try,pkg-mac-release-try,pkg-win-release-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/399261 Reviewed-by: Alexander Markov <alexmarkov@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>
89 lines
2.3 KiB
Dart
89 lines
2.3 KiB
Dart
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
library vm.metadata.loading_units;
|
|
|
|
import 'package:kernel/ast.dart';
|
|
|
|
class LoadingUnit {
|
|
final int id;
|
|
final int parentId;
|
|
final List<String> libraryUris;
|
|
|
|
LoadingUnit(this.id, this.parentId, this.libraryUris);
|
|
|
|
String toString() {
|
|
var sb = new StringBuffer();
|
|
sb.writeln("LoadingUnit(id=$id, parent=${parentId},");
|
|
for (var uri in libraryUris) {
|
|
sb.writeln(" $uri");
|
|
}
|
|
sb.write(")");
|
|
return sb.toString();
|
|
}
|
|
}
|
|
|
|
class LoadingUnitsMetadata {
|
|
final List<LoadingUnit> loadingUnits;
|
|
|
|
LoadingUnitsMetadata(this.loadingUnits);
|
|
|
|
String toString() {
|
|
var sb = new StringBuffer();
|
|
sb.writeln("LoadingUnitsMetadata(");
|
|
for (var unit in loadingUnits) {
|
|
sb.writeln(unit.toString());
|
|
}
|
|
sb.write(")");
|
|
return sb.toString();
|
|
}
|
|
}
|
|
|
|
/// Repository for [LoadingUnitsMetadata].
|
|
class LoadingUnitsMetadataRepository
|
|
extends MetadataRepository<LoadingUnitsMetadata> {
|
|
static final repositoryTag = 'vm.loading-units.metadata';
|
|
|
|
@override
|
|
final String tag = repositoryTag;
|
|
|
|
@override
|
|
final Map<TreeNode, LoadingUnitsMetadata> mapping =
|
|
<TreeNode, LoadingUnitsMetadata>{};
|
|
|
|
@override
|
|
void writeToBinary(
|
|
LoadingUnitsMetadata metadata,
|
|
Node node,
|
|
BinarySink sink,
|
|
) {
|
|
sink.writeUInt30(metadata.loadingUnits.length);
|
|
for (LoadingUnit unit in metadata.loadingUnits) {
|
|
sink.writeUInt30(unit.id);
|
|
sink.writeUInt30(unit.parentId);
|
|
sink.writeUInt30(unit.libraryUris.length);
|
|
for (String uri in unit.libraryUris) {
|
|
sink.writeStringReference(uri);
|
|
}
|
|
}
|
|
}
|
|
|
|
@override
|
|
LoadingUnitsMetadata readFromBinary(Node node, BinarySource source) {
|
|
int length = source.readUInt30();
|
|
var units = <LoadingUnit>[];
|
|
for (int i = 0; i < length; i++) {
|
|
int id = source.readUInt30();
|
|
int parentId = source.readUInt30();
|
|
var libraryUris = <String>[];
|
|
int length = source.readUInt30();
|
|
for (int i = 0; i < length; i++) {
|
|
libraryUris.add(source.readStringReference());
|
|
}
|
|
units.add(new LoadingUnit(id, parentId, libraryUris));
|
|
}
|
|
return new LoadingUnitsMetadata(units);
|
|
}
|
|
}
|