| 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 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 87 window.onMessage.listen(_messageHandler); | 87 window.onMessage.listen(_messageHandler); |
| 88 } | 88 } |
| 89 | 89 |
| 90 void _messageHandler(msg) { | 90 void _messageHandler(msg) { |
| 91 var id = msg.data['id']; | 91 var id = msg.data['id']; |
| 92 var name = msg.data['name']; | 92 var name = msg.data['name']; |
| 93 var data = msg.data['data']; | 93 var data = msg.data['data']; |
| 94 if (name != 'observatoryData') { | 94 if (name != 'observatoryData') { |
| 95 return; | 95 return; |
| 96 } | 96 } |
| 97 print('Got reply $id $data'); | |
| 98 var completer = _outstandingRequests[id]; | 97 var completer = _outstandingRequests[id]; |
| 99 if (completer != null) { | 98 if (completer != null) { |
| 100 _outstandingRequests.remove(id); | 99 _outstandingRequests.remove(id); |
| 101 print('Completing $id'); | 100 print('Completing $id'); |
| 102 completer.complete(data); | 101 completer.complete(data); |
| 103 } else { | 102 } else { |
| 104 print('Could not find completer for $id'); | 103 print('Could not find completer for $id'); |
| 105 } | 104 } |
| 106 } | 105 } |
| 107 | 106 |
| 108 Future<String> request(String requestString) { | 107 Future<String> request(String requestString) { |
| 109 var idString = '$_requestSerial'; | 108 var idString = '$_requestSerial'; |
| 110 Map message = {}; | 109 Map message = {}; |
| 111 message['id'] = idString; | 110 message['id'] = idString; |
| 112 message['method'] = 'observatoryQuery'; | 111 message['method'] = 'observatoryQuery'; |
| 113 message['query'] = requestString; | 112 message['query'] = requestString; |
| 114 _requestSerial++; | 113 _requestSerial++; |
| 115 | 114 |
| 116 var completer = new Completer(); | 115 var completer = new Completer(); |
| 117 _outstandingRequests[idString] = completer; | 116 _outstandingRequests[idString] = completer; |
| 118 | 117 |
| 119 window.parent.postMessage(JSON.encode(message), '*'); | 118 window.parent.postMessage(JSON.encode(message), '*'); |
| 120 return completer.future; | 119 return completer.future; |
| 121 } | 120 } |
| 122 } | 121 } |
| OLD | NEW |