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 |