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 1618 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1629 } | 1629 } |
1630 | 1630 |
1631 Future setExceptionPauseMode(String mode) { | 1631 Future setExceptionPauseMode(String mode) { |
1632 return invokeRpc('setExceptionPauseMode', {'mode': mode}); | 1632 return invokeRpc('setExceptionPauseMode', {'mode': mode}); |
1633 } | 1633 } |
1634 | 1634 |
1635 Future<ServiceMap> getStack() { | 1635 Future<ServiceMap> getStack() { |
1636 return invokeRpc('getStack', {}); | 1636 return invokeRpc('getStack', {}); |
1637 } | 1637 } |
1638 | 1638 |
| 1639 Future<ObjectStore> getObjectStore() { |
| 1640 return invokeRpc('_getObjectStore', {}).then((map) { |
| 1641 ObjectStore objectStore = new ObjectStore._empty(this); |
| 1642 objectStore._update(map, false); |
| 1643 return objectStore; |
| 1644 }); |
| 1645 } |
| 1646 |
1639 Future<ServiceObject> _eval(ServiceObject target, | 1647 Future<ServiceObject> _eval(ServiceObject target, |
1640 String expression) { | 1648 String expression) { |
1641 Map params = { | 1649 Map params = { |
1642 'targetId': target.id, | 1650 'targetId': target.id, |
1643 'expression': expression, | 1651 'expression': expression, |
1644 }; | 1652 }; |
1645 return invokeRpc('evaluate', params); | 1653 return invokeRpc('evaluate', params); |
1646 } | 1654 } |
1647 | 1655 |
1648 Future<ServiceObject> evalFrame(int frameIndex, | 1656 Future<ServiceObject> evalFrame(int frameIndex, |
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1737 return _refreshMetrics('Native', nativeMetrics); | 1745 return _refreshMetrics('Native', nativeMetrics); |
1738 } | 1746 } |
1739 | 1747 |
1740 Future refreshMetrics() { | 1748 Future refreshMetrics() { |
1741 return Future.wait([refreshDartMetrics(), refreshNativeMetrics()]); | 1749 return Future.wait([refreshDartMetrics(), refreshNativeMetrics()]); |
1742 } | 1750 } |
1743 | 1751 |
1744 String toString() => "Isolate($name)"; | 1752 String toString() => "Isolate($name)"; |
1745 } | 1753 } |
1746 | 1754 |
| 1755 |
| 1756 class NamedField { |
| 1757 final String name; |
| 1758 final ServiceObject value; |
| 1759 NamedField(this.name, this.value); |
| 1760 } |
| 1761 |
| 1762 |
| 1763 class ObjectStore extends ServiceObject { |
| 1764 @observable List<NamedField> fields = new List<NamedField>(); |
| 1765 |
| 1766 ObjectStore._empty(ServiceObjectOwner owner) : super._empty(owner); |
| 1767 |
| 1768 void _update(ObservableMap map, bool mapIsRef) { |
| 1769 // Extract full properties. |
| 1770 _upgradeCollection(map, isolate); |
| 1771 |
| 1772 if (mapIsRef) { |
| 1773 return; |
| 1774 } |
| 1775 |
| 1776 fields.clear(); |
| 1777 map['fields'].forEach((key, value) { |
| 1778 fields.add(new NamedField(key, value)); |
| 1779 }); |
| 1780 _loaded = true; |
| 1781 } |
| 1782 } |
| 1783 |
| 1784 |
1747 /// A [ServiceObject] which implements [ObservableMap]. | 1785 /// A [ServiceObject] which implements [ObservableMap]. |
1748 class ServiceMap extends ServiceObject implements ObservableMap { | 1786 class ServiceMap extends ServiceObject implements ObservableMap { |
1749 final ObservableMap _map = new ObservableMap(); | 1787 final ObservableMap _map = new ObservableMap(); |
1750 static String objectIdRingPrefix = 'objects/'; | 1788 static String objectIdRingPrefix = 'objects/'; |
1751 | 1789 |
1752 bool get canCache { | 1790 bool get canCache { |
1753 return (_type == 'Class' || | 1791 return (_type == 'Class' || |
1754 _type == 'Function' || | 1792 _type == 'Function' || |
1755 _type == 'Field') && | 1793 _type == 'Field') && |
1756 !_id.startsWith(objectIdRingPrefix); | 1794 !_id.startsWith(objectIdRingPrefix); |
(...skipping 2316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4073 var v = list[i]; | 4111 var v = list[i]; |
4074 if ((v is ObservableMap) && _isServiceMap(v)) { | 4112 if ((v is ObservableMap) && _isServiceMap(v)) { |
4075 list[i] = owner.getFromMap(v); | 4113 list[i] = owner.getFromMap(v); |
4076 } else if (v is ObservableList) { | 4114 } else if (v is ObservableList) { |
4077 _upgradeObservableList(v, owner); | 4115 _upgradeObservableList(v, owner); |
4078 } else if (v is ObservableMap) { | 4116 } else if (v is ObservableMap) { |
4079 _upgradeObservableMap(v, owner); | 4117 _upgradeObservableMap(v, owner); |
4080 } | 4118 } |
4081 } | 4119 } |
4082 } | 4120 } |
OLD | NEW |