| 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 |