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

Side by Side Diff: runtime/observatory/lib/src/elements/io_view.dart

Issue 1120133002: Rework error handling in the service protocol and in Observatory. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: fix tests Created 5 years, 7 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library io_view_element; 5 library io_view_element;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'observatory_element.dart'; 8 import 'observatory_element.dart';
9 import 'service_ref.dart'; 9 import 'service_ref.dart';
10 import 'package:observatory/service.dart'; 10 import 'package:observatory/service.dart';
11 import 'package:polymer/polymer.dart'; 11 import 'package:polymer/polymer.dart';
12 12
13 @CustomTag('io-view') 13 @CustomTag('io-view')
14 class IOViewElement extends ObservatoryElement { 14 class IOViewElement extends ObservatoryElement {
15 @published ServiceMap io; 15 @published ServiceMap io;
16 16
17 IOViewElement.created() : super.created(); 17 IOViewElement.created() : super.created();
18 18
19 void refresh(var done) { 19 Future refresh() {
20 io.reload().whenComplete(done); 20 return io.reload();
21 } 21 }
22 } 22 }
23 23
24 @CustomTag('io-ref') 24 @CustomTag('io-ref')
25 class IORefElement extends ServiceRefElement { 25 class IORefElement extends ServiceRefElement {
26 IORefElement.created() : super.created(); 26 IORefElement.created() : super.created();
27 } 27 }
28 28
29 @CustomTag('io-http-server-list-view') 29 @CustomTag('io-http-server-list-view')
30 class IOHttpServerListViewElement extends ObservatoryElement { 30 class IOHttpServerListViewElement extends ObservatoryElement {
31 @published ServiceMap list; 31 @published ServiceMap list;
32 32
33 IOHttpServerListViewElement.created() : super.created(); 33 IOHttpServerListViewElement.created() : super.created();
34 34
35 void refresh(var done) { 35 Future refresh() {
36 list.reload().whenComplete(done); 36 return list.reload();
37 } 37 }
38 } 38 }
39 39
40 @CustomTag('io-http-server-ref') 40 @CustomTag('io-http-server-ref')
41 class IOHttpServerRefElement extends ServiceRefElement { 41 class IOHttpServerRefElement extends ServiceRefElement {
42 IOHttpServerRefElement.created() : super.created(); 42 IOHttpServerRefElement.created() : super.created();
43 } 43 }
44 44
45 @CustomTag('io-http-server-view') 45 @CustomTag('io-http-server-view')
46 class IOHttpServerViewElement extends ObservatoryElement { 46 class IOHttpServerViewElement extends ObservatoryElement {
47 // TODO(ajohnsen): Create a HttpServer object. 47 // TODO(ajohnsen): Create a HttpServer object.
48 @published ServiceMap httpServer; 48 @published ServiceMap httpServer;
49 Timer _updateTimer; 49 Timer _updateTimer;
50 50
51 IOHttpServerViewElement.created() : super.created(); 51 IOHttpServerViewElement.created() : super.created();
52 52
53 void refresh(var done) { 53 Future refresh() {
54 httpServer.reload().whenComplete(done); 54 return httpServer.reload();
55 } 55 }
56 56
57 void _updateHttpServer() { 57 void _updateHttpServer() {
58 refresh(() { 58 refresh().then((_) {
59 if (_updateTimer != null) { 59 if (_updateTimer != null) {
60 _updateTimer = new Timer(new Duration(seconds: 1), _updateHttpServer); 60 _updateTimer = new Timer(new Duration(seconds: 1), _updateHttpServer);
61 } 61 }
62 }); 62 });
63 } 63 }
64 64
65 @override 65 @override
66 void attached() { 66 void attached() {
67 super.attached(); 67 super.attached();
68 // Start a timer to update the isolate summary once a second. 68 // Start a timer to update the isolate summary once a second.
(...skipping 10 matching lines...) Expand all
79 } 79 }
80 } 80 }
81 81
82 @CustomTag('io-http-server-connection-view') 82 @CustomTag('io-http-server-connection-view')
83 class IOHttpServerConnectionViewElement extends ObservatoryElement { 83 class IOHttpServerConnectionViewElement extends ObservatoryElement {
84 @published ServiceMap connection; 84 @published ServiceMap connection;
85 Timer _updateTimer; 85 Timer _updateTimer;
86 86
87 IOHttpServerConnectionViewElement.created() : super.created(); 87 IOHttpServerConnectionViewElement.created() : super.created();
88 88
89 void refresh(var done) { 89 Future refresh() {
90 connection.reload().whenComplete(done); 90 return connection.reload();
91 } 91 }
92 92
93 void _updateHttpServer() { 93 void _updateHttpServer() {
94 refresh(() { 94 refresh().then((_) {
95 if (_updateTimer != null) { 95 if (_updateTimer != null) {
96 _updateTimer = new Timer(new Duration(seconds: 1), _updateHttpServer); 96 _updateTimer = new Timer(new Duration(seconds: 1), _updateHttpServer);
97 } 97 }
98 }); 98 });
99 } 99 }
100 100
101 @override 101 @override
102 void attached() { 102 void attached() {
103 super.attached(); 103 super.attached();
104 // Start a timer to update the isolate summary once a second. 104 // Start a timer to update the isolate summary once a second.
(...skipping 19 matching lines...) Expand all
124 class IOSocketRefElement extends ServiceRefElement { 124 class IOSocketRefElement extends ServiceRefElement {
125 IOSocketRefElement.created() : super.created(); 125 IOSocketRefElement.created() : super.created();
126 } 126 }
127 127
128 @CustomTag('io-socket-list-view') 128 @CustomTag('io-socket-list-view')
129 class IOSocketListViewElement extends ObservatoryElement { 129 class IOSocketListViewElement extends ObservatoryElement {
130 @published ServiceMap list; 130 @published ServiceMap list;
131 131
132 IOSocketListViewElement.created() : super.created(); 132 IOSocketListViewElement.created() : super.created();
133 133
134 void refresh(var done) { 134 Future refresh() {
135 list.reload().whenComplete(done); 135 return list.reload();
136 } 136 }
137 } 137 }
138 138
139 @CustomTag('io-socket-view') 139 @CustomTag('io-socket-view')
140 class IOSocketViewElement extends ObservatoryElement { 140 class IOSocketViewElement extends ObservatoryElement {
141 @published Socket socket; 141 @published Socket socket;
142 142
143 IOSocketViewElement.created() : super.created(); 143 IOSocketViewElement.created() : super.created();
144 144
145 void refresh(var done) { 145 Future refresh() {
146 socket.reload().whenComplete(done); 146 return socket.reload();
147 } 147 }
148 } 148 }
149 149
150 @CustomTag('io-web-socket-ref') 150 @CustomTag('io-web-socket-ref')
151 class IOWebSocketRefElement extends ServiceRefElement { 151 class IOWebSocketRefElement extends ServiceRefElement {
152 IOWebSocketRefElement.created() : super.created(); 152 IOWebSocketRefElement.created() : super.created();
153 } 153 }
154 154
155 @CustomTag('io-web-socket-list-view') 155 @CustomTag('io-web-socket-list-view')
156 class IOWebSocketListViewElement extends ObservatoryElement { 156 class IOWebSocketListViewElement extends ObservatoryElement {
157 @published ServiceMap list; 157 @published ServiceMap list;
158 158
159 IOWebSocketListViewElement.created() : super.created(); 159 IOWebSocketListViewElement.created() : super.created();
160 160
161 void refresh(var done) { 161 Future refresh() {
162 list.reload().whenComplete(done); 162 return list.reload();
163 } 163 }
164 } 164 }
165 165
166 @CustomTag('io-web-socket-view') 166 @CustomTag('io-web-socket-view')
167 class IOWebSocketViewElement extends ObservatoryElement { 167 class IOWebSocketViewElement extends ObservatoryElement {
168 @published ServiceMap webSocket; 168 @published ServiceMap webSocket;
169 169
170 IOWebSocketViewElement.created() : super.created(); 170 IOWebSocketViewElement.created() : super.created();
171 171
172 void refresh(var done) { 172 Future refresh() {
173 webSocket.reload().whenComplete(done); 173 return webSocket.reload();
174 } 174 }
175 } 175 }
176 176
177 @CustomTag('io-random-access-file-list-view') 177 @CustomTag('io-random-access-file-list-view')
178 class IORandomAccessFileListViewElement extends ObservatoryElement { 178 class IORandomAccessFileListViewElement extends ObservatoryElement {
179 @published ServiceMap list; 179 @published ServiceMap list;
180 180
181 IORandomAccessFileListViewElement.created() : super.created(); 181 IORandomAccessFileListViewElement.created() : super.created();
182 182
183 void refresh(var done) { 183 Future refresh() {
184 list.reload().whenComplete(done); 184 return list.reload();
185 } 185 }
186 } 186 }
187 187
188 @CustomTag('io-random-access-file-ref') 188 @CustomTag('io-random-access-file-ref')
189 class IORandomAccessFileRefElement extends ServiceRefElement { 189 class IORandomAccessFileRefElement extends ServiceRefElement {
190 IORandomAccessFileRefElement.created() : super.created(); 190 IORandomAccessFileRefElement.created() : super.created();
191 } 191 }
192 192
193 @CustomTag('io-random-access-file-view') 193 @CustomTag('io-random-access-file-view')
194 class IORandomAccessFileViewElement extends ObservatoryElement { 194 class IORandomAccessFileViewElement extends ObservatoryElement {
195 // TODO(ajohnsen): Create a RandomAccessFile object. 195 // TODO(ajohnsen): Create a RandomAccessFile object.
196 @published ServiceMap file; 196 @published ServiceMap file;
197 Timer _updateTimer; 197 Timer _updateTimer;
198 198
199 IORandomAccessFileViewElement.created() : super.created(); 199 IORandomAccessFileViewElement.created() : super.created();
200 200
201 void refresh(var done) { 201 Future refresh() {
202 file.reload().whenComplete(done); 202 return file.reload();
203 } 203 }
204 204
205 void _updateFile() { 205 void _updateFile() {
206 refresh(() { 206 refresh().then((_) {
207 if (_updateTimer != null) { 207 if (_updateTimer != null) {
208 _updateTimer = new Timer(new Duration(seconds: 1), _updateFile); 208 _updateTimer = new Timer(new Duration(seconds: 1), _updateFile);
209 } 209 }
210 }); 210 }).catchError(app.handleException);
211 } 211 }
212 212
213 @override 213 @override
214 void attached() { 214 void attached() {
215 super.attached(); 215 super.attached();
216 // Start a timer to update the isolate summary once a second. 216 // Start a timer to update the isolate summary once a second.
217 _updateTimer = new Timer(new Duration(seconds: 1), _updateFile); 217 _updateTimer = new Timer(new Duration(seconds: 1), _updateFile);
218 } 218 }
219 219
220 @override 220 @override
221 void detached() { 221 void detached() {
222 super.detached(); 222 super.detached();
223 if (_updateTimer != null) { 223 if (_updateTimer != null) {
224 _updateTimer.cancel(); 224 _updateTimer.cancel();
225 _updateTimer = null; 225 _updateTimer = null;
226 } 226 }
227 } 227 }
228 } 228 }
229 229
230 @CustomTag('io-process-list-view') 230 @CustomTag('io-process-list-view')
231 class IOProcessListViewElement extends ObservatoryElement { 231 class IOProcessListViewElement extends ObservatoryElement {
232 @published ServiceMap list; 232 @published ServiceMap list;
233 233
234 IOProcessListViewElement.created() : super.created(); 234 IOProcessListViewElement.created() : super.created();
235 235
236 void refresh(var done) { 236 Future refresh() {
237 list.reload().whenComplete(done); 237 return list.reload();
238 } 238 }
239 } 239 }
240 240
241 @CustomTag('io-process-ref') 241 @CustomTag('io-process-ref')
242 class IOProcessRefElement extends ServiceRefElement { 242 class IOProcessRefElement extends ServiceRefElement {
243 // Only display the process name when small is set. 243 // Only display the process name when small is set.
244 @published bool small = false; 244 @published bool small = false;
245 IOProcessRefElement.created() : super.created(); 245 IOProcessRefElement.created() : super.created();
246 } 246 }
247 247
248 @CustomTag('io-process-view') 248 @CustomTag('io-process-view')
249 class IOProcessViewElement extends ObservatoryElement { 249 class IOProcessViewElement extends ObservatoryElement {
250 // TODO(ajohnsen): Create a Process object. 250 // TODO(ajohnsen): Create a Process object.
251 @published ServiceMap process; 251 @published ServiceMap process;
252 Timer _updateTimer; 252 Timer _updateTimer;
253 253
254 IOProcessViewElement.created() : super.created(); 254 IOProcessViewElement.created() : super.created();
255 255
256 void refresh(var done) { 256 Future refresh() {
257 process.reload().whenComplete(done); 257 return process.reload();
258 } 258 }
259 259
260 void _updateFile() { 260 void _updateFile() {
261 refresh(() { 261 refresh().then((_) {
262 if (_updateTimer != null) { 262 if (_updateTimer != null) {
263 _updateTimer = new Timer(new Duration(seconds: 1), _updateFile); 263 _updateTimer = new Timer(new Duration(seconds: 1), _updateFile);
264 } 264 }
265 }); 265 }).catchError(app.handleException);
266 } 266 }
267 267
268 @override 268 @override
269 void attached() { 269 void attached() {
270 super.attached(); 270 super.attached();
271 // Start a timer to update the isolate summary once a second. 271 // Start a timer to update the isolate summary once a second.
272 _updateTimer = new Timer(new Duration(seconds: 1), _updateFile); 272 _updateTimer = new Timer(new Duration(seconds: 1), _updateFile);
273 } 273 }
274 274
275 @override 275 @override
276 void detached() { 276 void detached() {
277 super.detached(); 277 super.detached();
278 if (_updateTimer != null) { 278 if (_updateTimer != null) {
279 _updateTimer.cancel(); 279 _updateTimer.cancel();
280 _updateTimer = null; 280 _updateTimer = null;
281 } 281 }
282 } 282 }
283 } 283 }
OLDNEW
« no previous file with comments | « runtime/observatory/lib/src/elements/instance_view.dart ('k') | runtime/observatory/lib/src/elements/isolate_reconnect.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698