Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(567)

Side by Side Diff: runtime/bin/vmservice/observatory/lib/src/service/object.dart

Issue 474633002: Optional binary payloads in VM service events. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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(String eventMessage, [dynamic data]) {
257 var map; 257 var map;
258 try { 258 try {
259 map = _parseJSON(eventMessage); 259 map = _parseJSON(eventMessage);
260 assert(!map.containsKey('_data'));
261 if (data != null) {
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698