Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Unified Diff: runtime/bin/vmservice/client/observatory/packages/observatory/src/observatory/request_manager.dart

Issue 24471002: Initial GUI for review (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
+ });
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698