OLD | NEW |
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 shell; | 5 library shell; |
6 | 6 |
7 import 'package:observatory/service_io.dart'; | 7 import 'package:observatory/service_io.dart'; |
8 | 8 |
9 import 'dart:io'; | 9 import 'dart:io'; |
10 | 10 |
11 // Simple demo for service_io library. Connects to localhost on the default | 11 // Simple demo for service_io library. Connects to localhost on the default |
12 // port, picks the first isolate, reads requests from stdin, and prints | 12 // port, picks the first isolate, reads requests from stdin, and prints |
13 // results to stdout. Example session: | 13 // results to stdout. Example session: |
14 // <<< isolate isolates/1071334835 | 14 // <<< isolate isolates/1071334835 |
15 // >>> /classes/40 | 15 // >>> /classes/40 |
16 // <<< {"type":"Class","id":"classes\/40","name":"num","user_name":"num",... | 16 // <<< {"type":"Class","id":"classes\/40","name":"num","user_name":"num",... |
17 // >>> /objects/0 | 17 // >>> /objects/0 |
18 // >>> {"type":"Array","class":{"type":"@Class","id":"classes\/62",... | 18 // >>> {"type":"Array","class":{"type":"@Class","id":"classes\/62",... |
19 | 19 |
20 void repl(VM vm, Isolate isolate, String lastResult) { | 20 void repl(VM vm, Isolate isolate, String lastResult) { |
21 print(lastResult); | 21 print(lastResult); |
22 Map params = { | 22 Map params = { |
23 'objectId': stdin.readLineSync(), | 23 'objectId': stdin.readLineSync(), |
24 }; | 24 }; |
25 isolate.invokeRpc('getObject', params).then((String result) { | 25 isolate.invokeRpcNoUpgrade('getObject', params).then((Map result) { |
26 repl(vm, prefix, result); | 26 repl(vm, isolate, result.toString()); |
27 }); | 27 }); |
28 } | 28 } |
29 | 29 |
30 void main() { | 30 void main() { |
31 String addr = 'ws://localhost:8181/ws'; | 31 String addr = 'ws://localhost:8181/ws'; |
32 new WebSocketVM(new WebSocketVMTarget(addr)).load().then((VM vm) { | 32 new WebSocketVM(new WebSocketVMTarget(addr)).load().then((VM vm) { |
33 Isolate isolate = vm.isolates.first; | 33 Isolate isolate = vm.isolates.first; |
34 repl(vm, isolate, 'isolate ${isolate.id}'); | 34 repl(vm, isolate, 'isolate ${isolate.id}'); |
35 }); | 35 }); |
36 } | 36 } |
OLD | NEW |