OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 observatory; | 5 part of observatory; |
6 | 6 |
7 /// A request response interceptor is called for each response. | 7 /// A request response interceptor is called for each response. |
8 typedef void RequestResponseInterceptor(); | 8 typedef void RequestResponseInterceptor(); |
9 | 9 |
10 abstract class RequestManager extends Observable { | 10 abstract class RequestManager extends Observable { |
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 window.onMessage.listen(_messageHandler); | 258 window.onMessage.listen(_messageHandler); |
259 } | 259 } |
260 | 260 |
261 void _messageHandler(msg) { | 261 void _messageHandler(msg) { |
262 var id = msg.data['id']; | 262 var id = msg.data['id']; |
263 var name = msg.data['name']; | 263 var name = msg.data['name']; |
264 var data = msg.data['data']; | 264 var data = msg.data['data']; |
265 if (name != 'observatoryData') { | 265 if (name != 'observatoryData') { |
266 return; | 266 return; |
267 } | 267 } |
268 print('Got reply $id $data'); | |
269 var completer = _outstandingRequests[id]; | 268 var completer = _outstandingRequests[id]; |
270 if (completer != null) { | 269 if (completer != null) { |
271 _outstandingRequests.remove(id); | 270 _outstandingRequests.remove(id); |
272 print('Completing $id'); | 271 print('Completing $id'); |
273 completer.complete(data); | 272 completer.complete(data); |
274 } else { | 273 } else { |
275 print('Could not find completer for $id'); | 274 print('Could not find completer for $id'); |
276 } | 275 } |
277 } | 276 } |
278 | 277 |
279 Future<String> request(String requestString) { | 278 Future<String> request(String requestString) { |
280 var idString = '$_requestSerial'; | 279 var idString = '$_requestSerial'; |
281 Map message = {}; | 280 Map message = {}; |
282 message['id'] = idString; | 281 message['id'] = idString; |
283 message['method'] = 'observatoryQuery'; | 282 message['method'] = 'observatoryQuery'; |
284 message['query'] = requestString; | 283 message['query'] = requestString; |
285 _requestSerial++; | 284 _requestSerial++; |
286 | 285 |
287 var completer = new Completer(); | 286 var completer = new Completer(); |
288 _outstandingRequests[idString] = completer; | 287 _outstandingRequests[idString] = completer; |
289 | 288 |
290 window.parent.postMessage(JSON.encode(message), '*'); | 289 window.parent.postMessage(JSON.encode(message), '*'); |
291 return completer.future; | 290 return completer.future; |
292 } | 291 } |
293 } | 292 } |
OLD | NEW |