Chromium Code Reviews| 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 /// A [ServiceObject] is an object known to the VM service and is tied | 7 /// A [ServiceObject] is an object known to the VM service and is tied |
| 8 /// to an owning [Isolate]. | 8 /// to an owning [Isolate]. |
| 9 abstract class ServiceObject extends Observable { | 9 abstract class ServiceObject extends Observable { |
| 10 static int LexicalSortName(ServiceObject o1, ServiceObject o2) { | 10 static int LexicalSortName(ServiceObject o1, ServiceObject o2) { |
| (...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 246 update(toObservable({'id':'vm', 'type':'@VM'})); | 246 update(toObservable({'id':'vm', 'type':'@VM'})); |
| 247 } | 247 } |
| 248 | 248 |
| 249 final StreamController<ServiceException> exceptions = | 249 final StreamController<ServiceException> exceptions = |
| 250 new StreamController.broadcast(); | 250 new StreamController.broadcast(); |
| 251 final StreamController<ServiceError> errors = | 251 final StreamController<ServiceError> errors = |
| 252 new StreamController.broadcast(); | 252 new StreamController.broadcast(); |
| 253 final StreamController<ServiceEvent> events = | 253 final StreamController<ServiceEvent> events = |
| 254 new StreamController.broadcast(); | 254 new StreamController.broadcast(); |
| 255 | 255 |
| 256 void postEventMessage(String eventMessage) { | 256 void postEventMessage(dynamic eventMessage, [dynamic data]) { |
|
Cutch
2014/08/15 21:33:58
Is eventMessage actually dynamic now?
koda
2014/08/15 22:20:53
Already fixed in the later patch set.
| |
| 257 var map; | 257 var map; |
| 258 try { | 258 try { |
| 259 map = _parseJSON(eventMessage); | 259 map = _parseJSON(eventMessage); |
| 260 if (data != null) { | |
| 261 assert(!map.containsKey('_data')); | |
| 262 map['_data'] = data; | |
| 263 } | |
| 260 } catch (e, st) { | 264 } catch (e, st) { |
| 261 Logger.root.severe('Ignoring malformed event message: ${eventMessage}'); | 265 Logger.root.severe('Ignoring malformed event message: ${eventMessage}'); |
| 262 return; | 266 return; |
| 263 } | 267 } |
| 264 if (map['type'] != 'ServiceEvent') { | 268 if (map['type'] != 'ServiceEvent') { |
| 265 Logger.root.severe( | 269 Logger.root.severe( |
| 266 "Expected 'ServiceEvent' but found '${map['type']}'"); | 270 "Expected 'ServiceEvent' but found '${map['type']}'"); |
| 267 return; | 271 return; |
| 268 } | 272 } |
| 269 | 273 |
| (...skipping 890 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1160 } | 1164 } |
| 1161 } | 1165 } |
| 1162 | 1166 |
| 1163 /// A [ServiceEvent] is an asynchronous event notification from the vm. | 1167 /// A [ServiceEvent] is an asynchronous event notification from the vm. |
| 1164 class ServiceEvent extends ServiceObject { | 1168 class ServiceEvent extends ServiceObject { |
| 1165 ServiceEvent._empty(ServiceObjectOwner owner) : super._empty(owner); | 1169 ServiceEvent._empty(ServiceObjectOwner owner) : super._empty(owner); |
| 1166 | 1170 |
| 1167 @observable String eventType; | 1171 @observable String eventType; |
| 1168 @observable ServiceMap breakpoint; | 1172 @observable ServiceMap breakpoint; |
| 1169 @observable ServiceMap exception; | 1173 @observable ServiceMap exception; |
| 1174 @observable ByteData data; | |
| 1170 | 1175 |
| 1171 void _update(ObservableMap map, bool mapIsRef) { | 1176 void _update(ObservableMap map, bool mapIsRef) { |
| 1172 _loaded = true; | 1177 _loaded = true; |
| 1173 _upgradeCollection(map, owner); | 1178 _upgradeCollection(map, owner); |
| 1174 eventType = map['eventType']; | 1179 eventType = map['eventType']; |
| 1175 name = 'ServiceEvent $eventType'; | 1180 name = 'ServiceEvent $eventType'; |
| 1176 vmName = name; | 1181 vmName = name; |
| 1177 if (map['breakpoint'] != null) { | 1182 if (map['breakpoint'] != null) { |
| 1178 breakpoint = map['breakpoint']; | 1183 breakpoint = map['breakpoint']; |
| 1179 } | 1184 } |
| 1180 if (map['exception'] != null) { | 1185 if (map['exception'] != null) { |
| 1181 exception = map['exception']; | 1186 exception = map['exception']; |
| 1182 } | 1187 } |
| 1188 if (map['_data'] != null) { | |
| 1189 data = map['_data']; | |
| 1190 } | |
| 1191 } | |
| 1192 | |
| 1193 String toString() { | |
| 1194 return 'ServiceEvent of type $eventType with ' | |
| 1195 '${data == null ? 0 : data.lengthInBytes} bytes of binary data'; | |
| 1183 } | 1196 } |
| 1184 } | 1197 } |
| 1185 | 1198 |
| 1186 class Library extends ServiceObject with Coverage { | 1199 class Library extends ServiceObject with Coverage { |
| 1187 @observable String url; | 1200 @observable String url; |
| 1188 @reflectable final imports = new ObservableList<Library>(); | 1201 @reflectable final imports = new ObservableList<Library>(); |
| 1189 @reflectable final scripts = new ObservableList<Script>(); | 1202 @reflectable final scripts = new ObservableList<Script>(); |
| 1190 @reflectable final classes = new ObservableList<Class>(); | 1203 @reflectable final classes = new ObservableList<Class>(); |
| 1191 @reflectable final variables = new ObservableList<ServiceMap>(); | 1204 @reflectable final variables = new ObservableList<ServiceMap>(); |
| 1192 @reflectable final functions = new ObservableList<ServiceFunction>(); | 1205 @reflectable final functions = new ObservableList<ServiceFunction>(); |
| (...skipping 1050 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2243 var v = list[i]; | 2256 var v = list[i]; |
| 2244 if ((v is ObservableMap) && _isServiceMap(v)) { | 2257 if ((v is ObservableMap) && _isServiceMap(v)) { |
| 2245 list[i] = owner.getFromMap(v); | 2258 list[i] = owner.getFromMap(v); |
| 2246 } else if (v is ObservableList) { | 2259 } else if (v is ObservableList) { |
| 2247 _upgradeObservableList(v, owner); | 2260 _upgradeObservableList(v, owner); |
| 2248 } else if (v is ObservableMap) { | 2261 } else if (v is ObservableMap) { |
| 2249 _upgradeObservableMap(v, owner); | 2262 _upgradeObservableMap(v, owner); |
| 2250 } | 2263 } |
| 2251 } | 2264 } |
| 2252 } | 2265 } |
| OLD | NEW |