| OLD | NEW |
| (Empty) |
| 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 | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 library shell; | |
| 6 | |
| 7 import 'package:observatory/service_io.dart'; | |
| 8 | |
| 9 import 'dart:io'; | |
| 10 | |
| 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 | |
| 13 // results to stdout. Example session: | |
| 14 // <<< prefix /isolates/1071334835 | |
| 15 // >>> /classes/40 | |
| 16 // <<< {"type":"Class","id":"classes\/40","name":"num","user_name":"num",... | |
| 17 // >>> /objects/0 | |
| 18 // >>> {"type":"Array","class":{"type":"@Class","id":"classes\/62",... | |
| 19 | |
| 20 void repl(VM vm, String prefix, String lastResult) { | |
| 21 print(lastResult); | |
| 22 // TODO(koda): Use 'get' when ServiceObjects have more informative toString. | |
| 23 vm.getString(prefix + stdin.readLineSync()).then((String result) { | |
| 24 repl(vm, prefix, result); | |
| 25 }); | |
| 26 } | |
| 27 | |
| 28 void main() { | |
| 29 String addr = 'ws://localhost:8181/ws'; | |
| 30 new WebSocketVM(new WebSocketVMTarget(addr)).get('vm').then((VM vm) { | |
| 31 Isolate isolate = vm.isolates.first; | |
| 32 String prefix = '${isolate.link}'; | |
| 33 repl(vm, prefix, 'prefix $prefix'); | |
| 34 }); | |
| 35 } | |
| OLD | NEW |