Chromium Code Reviews| Index: runtime/bin/vmservice/client/observatory/packages/observatory/src/observatory/request_manager.dart |
| diff --git a/runtime/bin/vmservice/client/observatory/packages/observatory/src/observatory/request_manager.dart b/runtime/bin/vmservice/client/observatory/packages/observatory/src/observatory/request_manager.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..92ea0b081b4f9193130f896f288d2dea9cd041dc |
| --- /dev/null |
| +++ b/runtime/bin/vmservice/client/observatory/packages/observatory/src/observatory/request_manager.dart |
| @@ -0,0 +1,50 @@ |
| +part of observatory; |
| + |
| +typedef void RequestResponseInterceptor(); |
|
justinfagnani
2013/09/24 23:20:16
what is this?
|
| + |
| +class RequestManager extends Object with ObservableMixin { |
| + ObservatoryApplication _application; |
| + ObservatoryApplication get application => _application; |
| + RequestResponseInterceptor interceptor; |
| + |
| + @observable String prefix = '127.0.0.1:8181'; |
| + @observable List<Map> responses = toObservable([]); |
| + |
| + void parseResponses(String responseString) { |
| + var r = JSON.decode(responseString); |
| + if (r is Map) { |
| + setResponses([r]); |
| + } else { |
| + setResponses(r); |
| + } |
| + } |
| + |
| + void setResponses(List<Map> r) { |
| + responses = toObservable(r); |
| + if (interceptor != null) { |
| + interceptor(); |
| + } |
| + } |
| + |
| + void setResponseError(String error) { |
| + setResponses([{ |
| + 'type': 'RequestError', |
| + 'error': error |
| + }]); |
| + } |
| + |
| + Future<Map> get(String url) { |
| + throw new UnimplementedError('RequestManager is abstract.'); |
|
justinfagnani
2013/09/24 23:20:16
unnecessary. just declare RequestManager as an abs
Cutch
2013/09/25 18:10:20
Done.
|
| + } |
| +} |
| + |
| + |
| +class HttpRequestManager extends RequestManager { |
| + Future get(String url) { |
|
justinfagnani
2013/09/24 23:20:16
rather than making it the responsibility of get()
Cutch
2013/09/25 18:10:20
Done.
|
| + return HttpRequest.getString(prefix + url).then((responseString) { |
| + parseResponses(responseString); |
| + }).catchError((e) { |
| + setResponseError(e.toString()); |
| + }); |
| + } |
| +} |