blob: 8083ea780f5249585913ab92d2f916924e055de1 [file] [log] [blame]
// Copyright (c) 2016, 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 StronglyReachableInstancesRepository
implements M.StronglyReachableInstancesRepository {
Future<M.InstanceSet> get(M.IsolateRef i, M.ClassRef c,
{int limit: 100}) async {
S.Isolate isolate = i as S.Isolate;
S.Class cls = c as S.Class;
assert(isolate != null);
assert(cls != null);
assert(limit != null);
return (await isolate.getInstances(cls, limit)) as S.InstanceSet;
}
Future<M.Guarded<M.InstanceRef>> getAsArray(M.IsolateRef i, M.ClassRef c,
{bool includeSubclasses: false, includeImplementors: false}) async {
S.Isolate isolate = i as S.Isolate;
S.Class cls = c as S.Class;
assert(isolate != null);
assert(cls != null);
final response = await isolate.invokeRpc('_getInstancesAsArray', {
'objectId': cls.id,
'includeSubclasses': includeSubclasses == true,
'includeImplementors': includeImplementors == true,
});
return new S.Guarded<S.Instance>(response);
}
}