OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of service; | 5 part of service; |
6 | 6 |
7 // Some value smaller than the object ring, so requesting a large array | 7 // Some value smaller than the object ring, so requesting a large array |
8 // doesn't result in an expired ref because the elements lapped it in the | 8 // doesn't result in an expired ref because the elements lapped it in the |
9 // object ring. | 9 // object ring. |
10 const int kDefaultFieldLimit = 100; | 10 const int kDefaultFieldLimit = 100; |
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 obj = new ObjectPool._empty(owner); | 246 obj = new ObjectPool._empty(owner); |
247 break; | 247 break; |
248 case 'PcDescriptors': | 248 case 'PcDescriptors': |
249 obj = new PcDescriptors._empty(owner); | 249 obj = new PcDescriptors._empty(owner); |
250 break; | 250 break; |
251 case 'TokenStream': | 251 case 'TokenStream': |
252 obj = new TokenStream._empty(owner); | 252 obj = new TokenStream._empty(owner); |
253 break; | 253 break; |
254 } | 254 } |
255 break; | 255 break; |
| 256 case '_ObjectStore': |
| 257 obj = new ObjectStore._empty(owner); |
| 258 break; |
256 case 'Event': | 259 case 'Event': |
257 obj = new ServiceEvent._empty(owner); | 260 obj = new ServiceEvent._empty(owner); |
258 break; | 261 break; |
259 case 'Script': | 262 case 'Script': |
260 obj = new Script._empty(owner); | 263 obj = new Script._empty(owner); |
261 break; | 264 break; |
262 case 'Socket': | 265 case 'Socket': |
263 obj = new Socket._empty(owner); | 266 obj = new Socket._empty(owner); |
264 break; | 267 break; |
265 case 'Instance': | 268 case 'Instance': |
(...skipping 1061 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1327 | 1330 |
1328 Future<ObservableMap> _fetchDirect({int count: kDefaultFieldLimit}) async { | 1331 Future<ObservableMap> _fetchDirect({int count: kDefaultFieldLimit}) async { |
1329 return invokeRpcNoUpgrade('getIsolate', {}); | 1332 return invokeRpcNoUpgrade('getIsolate', {}); |
1330 } | 1333 } |
1331 | 1334 |
1332 @observable Class objectClass; | 1335 @observable Class objectClass; |
1333 @observable final rootClasses = new ObservableList<Class>(); | 1336 @observable final rootClasses = new ObservableList<Class>(); |
1334 Map<int, Class> _classesByCid = new Map<int, Class>(); | 1337 Map<int, Class> _classesByCid = new Map<int, Class>(); |
1335 | 1338 |
1336 @observable Library rootLibrary; | 1339 @observable Library rootLibrary; |
| 1340 @observable ObjectStore objectStore; |
1337 @observable ObservableList<Library> libraries = | 1341 @observable ObservableList<Library> libraries = |
1338 new ObservableList<Library>(); | 1342 new ObservableList<Library>(); |
1339 @observable Frame topFrame; | 1343 @observable Frame topFrame; |
1340 | 1344 |
1341 @observable String name; | 1345 @observable String name; |
1342 @observable String vmName; | 1346 @observable String vmName; |
1343 @observable ServiceFunction entry; | 1347 @observable ServiceFunction entry; |
1344 | 1348 |
1345 final HeapSpace newSpace = new HeapSpace(); | 1349 final HeapSpace newSpace = new HeapSpace(); |
1346 final HeapSpace oldSpace = new HeapSpace(); | 1350 final HeapSpace oldSpace = new HeapSpace(); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1408 number = int.parse(map['number'], onError:(_) => null); | 1412 number = int.parse(map['number'], onError:(_) => null); |
1409 if (mapIsRef) { | 1413 if (mapIsRef) { |
1410 return; | 1414 return; |
1411 } | 1415 } |
1412 _loaded = true; | 1416 _loaded = true; |
1413 loading = false; | 1417 loading = false; |
1414 runnable = map['runnable'] == true; | 1418 runnable = map['runnable'] == true; |
1415 _upgradeCollection(map, isolate); | 1419 _upgradeCollection(map, isolate); |
1416 originNumber = int.parse(map['_originNumber'], onError:(_) => null); | 1420 originNumber = int.parse(map['_originNumber'], onError:(_) => null); |
1417 rootLibrary = map['rootLib']; | 1421 rootLibrary = map['rootLib']; |
| 1422 objectStore = map['_objectStore']; |
1418 if (map['entry'] != null) { | 1423 if (map['entry'] != null) { |
1419 entry = map['entry']; | 1424 entry = map['entry']; |
1420 } | 1425 } |
1421 var savedStartTime = startTime; | 1426 var savedStartTime = startTime; |
1422 int startTimeInMillis = map['startTime']; | 1427 int startTimeInMillis = map['startTime']; |
1423 startTime = new DateTime.fromMillisecondsSinceEpoch(startTimeInMillis); | 1428 startTime = new DateTime.fromMillisecondsSinceEpoch(startTimeInMillis); |
1424 notifyPropertyChange(#upTime, 0, 1); | 1429 notifyPropertyChange(#upTime, 0, 1); |
1425 var countersMap = map['_tagCounters']; | 1430 var countersMap = map['_tagCounters']; |
1426 if (countersMap != null) { | 1431 if (countersMap != null) { |
1427 var names = countersMap['names']; | 1432 var names = countersMap['names']; |
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1737 return _refreshMetrics('Native', nativeMetrics); | 1742 return _refreshMetrics('Native', nativeMetrics); |
1738 } | 1743 } |
1739 | 1744 |
1740 Future refreshMetrics() { | 1745 Future refreshMetrics() { |
1741 return Future.wait([refreshDartMetrics(), refreshNativeMetrics()]); | 1746 return Future.wait([refreshDartMetrics(), refreshNativeMetrics()]); |
1742 } | 1747 } |
1743 | 1748 |
1744 String toString() => "Isolate($name)"; | 1749 String toString() => "Isolate($name)"; |
1745 } | 1750 } |
1746 | 1751 |
| 1752 |
| 1753 class NamedField { |
| 1754 final String name; |
| 1755 final ServiceObject value; |
| 1756 NamedField(this.name, this.value); |
| 1757 } |
| 1758 |
| 1759 |
| 1760 class ObjectStore extends ServiceObject { |
| 1761 @observable List<NamedField> fields = new List<NamedField>(); |
| 1762 |
| 1763 ObjectStore._empty(ServiceObjectOwner owner) : super._empty(owner); |
| 1764 |
| 1765 void _update(ObservableMap map, bool mapIsRef) { |
| 1766 // Extract full properties. |
| 1767 _upgradeCollection(map, isolate); |
| 1768 |
| 1769 if (mapIsRef) { |
| 1770 return; |
| 1771 } |
| 1772 |
| 1773 fields.clear(); |
| 1774 map['fields'].forEach((key, value) { |
| 1775 fields.add(new NamedField(key, value)); |
| 1776 }); |
| 1777 _loaded = true; |
| 1778 } |
| 1779 } |
| 1780 |
| 1781 |
1747 /// A [ServiceObject] which implements [ObservableMap]. | 1782 /// A [ServiceObject] which implements [ObservableMap]. |
1748 class ServiceMap extends ServiceObject implements ObservableMap { | 1783 class ServiceMap extends ServiceObject implements ObservableMap { |
1749 final ObservableMap _map = new ObservableMap(); | 1784 final ObservableMap _map = new ObservableMap(); |
1750 static String objectIdRingPrefix = 'objects/'; | 1785 static String objectIdRingPrefix = 'objects/'; |
1751 | 1786 |
1752 bool get canCache { | 1787 bool get canCache { |
1753 return (_type == 'Class' || | 1788 return (_type == 'Class' || |
1754 _type == 'Function' || | 1789 _type == 'Function' || |
1755 _type == 'Field') && | 1790 _type == 'Field') && |
1756 !_id.startsWith(objectIdRingPrefix); | 1791 !_id.startsWith(objectIdRingPrefix); |
(...skipping 2316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4073 var v = list[i]; | 4108 var v = list[i]; |
4074 if ((v is ObservableMap) && _isServiceMap(v)) { | 4109 if ((v is ObservableMap) && _isServiceMap(v)) { |
4075 list[i] = owner.getFromMap(v); | 4110 list[i] = owner.getFromMap(v); |
4076 } else if (v is ObservableList) { | 4111 } else if (v is ObservableList) { |
4077 _upgradeObservableList(v, owner); | 4112 _upgradeObservableList(v, owner); |
4078 } else if (v is ObservableMap) { | 4113 } else if (v is ObservableMap) { |
4079 _upgradeObservableMap(v, owner); | 4114 _upgradeObservableMap(v, owner); |
4080 } | 4115 } |
4081 } | 4116 } |
4082 } | 4117 } |
OLD | NEW |