blob: c2695ef923a532e496b880a66c3d877b6cc89cfc [file] [log] [blame]
// Copyright (c) 2017, 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
part of repositories;
class TimelineRepository implements M.TimelineRepository {
Future<M.TimelineFlags> getFlags(M.VMRef ref) async {
S.VM vm = ref as S.VM;
S.ServiceMap response = await vm.invokeRpc('getVMTimelineFlags', {});
return new S.TimelineFlags(response);
}
Future setRecordedStreams(M.VMRef ref, Iterable<M.TimelineStream> streams) {
S.VM vm = ref as S.VM;
assert(vm != null);
return vm.invokeRpc('setVMTimelineFlags', {
'recordedStreams': '[${streams.map((s) => s.name).join(', ')}]',
});
}
Future clear(M.VMRef ref) {
S.VM vm = ref as S.VM;
return vm.invokeRpc('clearVMTimeline', {});
}
Future<Map<String, dynamic>> getIFrameParams(M.VMRef ref) async {
final SH.WebSocketVM vm = ref as SH.WebSocketVM;
assert(vm != null);
await vm.reload();
await vm.reloadIsolates();
return <String, dynamic>{
'vmAddress': vm.target.networkAddress,
'isolateIds': vm.isolates.map((i) => i.id).toList()
};
}
}