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

Side by Side Diff: runtime/bin/vmservice/client/lib/src/observatory/request_manager.dart

Issue 50243002: Extend Observatory to display libraries, classes, fields, functions and code. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 Object with ChangeNotifierMixin { 10 abstract class RequestManager extends Observable {
11 ObservatoryApplication _application; 11 ObservatoryApplication _application;
12 ObservatoryApplication get application => _application; 12 ObservatoryApplication get application => _application;
13 RequestResponseInterceptor interceptor; 13 RequestResponseInterceptor interceptor;
14 14
15 /// The default request prefix is 127.0.0.1 on port 8181. 15 /// The default request prefix is 127.0.0.1 on port 8181.
16 @observable String get prefix => __$prefix; String __$prefix = 'http://127.0.0 .1:8181'; set prefix(String value) { __$prefix = notifyPropertyChange(#prefix, _ _$prefix, value); } 16 @observable String prefix = 'http://127.0.0.1:8181';
17 /// List of responses. 17 /// List of responses.
18 @observable List<Map> get responses => __$responses; List<Map> __$responses = toObservable([]); set responses(List<Map> value) { __$responses = notifyProperty Change(#responses, __$responses, value); } 18 @observable List<Map> responses = toObservable([]);
19 19
20 /// Parse 20 /// Parse
21 void parseResponses(String responseString) { 21 void parseResponses(String responseString) {
22 var r = JSON.decode(responseString); 22 var r = JSON.decode(responseString);
23 if (r is Map) { 23 if (r is Map) {
24 setResponses([r]); 24 setResponses([r]);
25 } else { 25 } else {
26 setResponses(r); 26 setResponses(r);
27 } 27 }
28 } 28 }
29 29
30 void setResponses(List<Map> r) { 30 void setResponses(List<Map> r) {
31 responses = toObservable(r); 31 responses = toObservable(r);
32 if (interceptor != null) { 32 if (interceptor != null) {
33 interceptor(); 33 interceptor();
34 } 34 }
35 } 35 }
36 36
37 void setResponseError(String error) { 37 void setResponseError(HttpRequest request) {
38 String error = '${request.status} ${request.statusText}';
39 if (request.status == 0) {
40 error = 'No service found. Did you run with --enable-vm-service ?';
41 }
38 setResponses([{ 42 setResponses([{
39 'type': 'RequestError', 43 'type': 'RequestError',
40 'error': error 44 'error': error
41 }]); 45 }]);
42 } 46 }
43 47
44 /// Request [requestString] from the VM service. Updates [responses]. 48 /// Request [requestString] from the VM service. Updates [responses].
45 /// Will trigger [interceptor] if one is set. 49 /// Will trigger [interceptor] if one is set.
46 Future<Map> get(String requestString) { 50 Future<Map> get(String requestString) {
47 request(requestString).then((responseString) { 51 request(requestString).then((responseString) {
48 parseResponses(responseString); 52 parseResponses(responseString);
49 }).catchError((e) { 53 }).catchError((e) {
50 setResponseError(e.toString()); 54 setResponseError(e.target);
51 }); 55 });
52 } 56 }
53 57
54 /// Abstract method. Given the [requestString], return a String in the 58 /// Abstract method. Given the [requestString], return a String in the
55 /// future which contains the reply from the VM service. 59 /// future which contains the reply from the VM service.
56 Future<String> request(String requestString); 60 Future<String> request(String requestString);
57 } 61 }
58 62
59 63
60 class HttpRequestManager extends RequestManager { 64 class HttpRequestManager extends RequestManager {
61 Future<String> request(String requestString) { 65 Future<String> request(String requestString) {
62 return HttpRequest.getString(prefix + requestString); 66 return HttpRequest.getString(prefix + requestString);
63 } 67 }
64 } 68 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698