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

Side by Side Diff: lib/src/stream_manager.dart

Issue 1670283002: add sendRequest to VMIsolateRef Base URL: git@github.com:yjbanov/vm_service_client.git@master
Patch Set: address comments 2 Created 4 years, 10 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
« no previous file with comments | « lib/src/scope.dart ('k') | test/isolate_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 import 'dart:async'; 5 import 'dart:async';
6 6
7 import 'package:json_rpc_2/json_rpc_2.dart' as rpc; 7 import 'package:json_rpc_2/json_rpc_2.dart' as rpc;
8 8
9 /// A class that exposes the service protocol's event streams. 9 /// A class that exposes the service protocol's event streams.
10 /// 10 ///
(...skipping 23 matching lines...) Expand all
34 StreamController<Map> _gcController; 34 StreamController<Map> _gcController;
35 35
36 /// Data written to standard output. 36 /// Data written to standard output.
37 Stream<Map> get stdout => _stdoutController.stream; 37 Stream<Map> get stdout => _stdoutController.stream;
38 StreamController<Map> _stdoutController; 38 StreamController<Map> _stdoutController;
39 39
40 /// Data written to standard error. 40 /// Data written to standard error.
41 Stream<Map> get stderr => _stderrController.stream; 41 Stream<Map> get stderr => _stderrController.stream;
42 StreamController<Map> _stderrController; 42 StreamController<Map> _stderrController;
43 43
44 /// Custom events posted via `postEvent` from the `dart:developer` package.
45 Stream<Map> get extension => _extensionController.stream;
46 StreamController<Map> _extensionController;
47
44 /// A subscription to [debug]. 48 /// A subscription to [debug].
45 /// 49 ///
46 /// This subscription fires no events, but it exists as long as there's also a 50 /// This subscription fires no events, but it exists as long as there's also a
47 /// subscription to [stdout] or [stderr] to work around sdk#24350. 51 /// subscription to [stdout] or [stderr] to work around sdk#24350.
48 StreamSubscription _debugSubscription; 52 StreamSubscription _debugSubscription;
49 53
50 StreamManager(this._peer) { 54 StreamManager(this._peer) {
51 _isolateController = _controller("Isolate"); 55 _isolateController = _controller("Isolate");
52 _vmController = _controller("VM"); 56 _vmController = _controller("VM");
53 _debugController = _controller("Debug"); 57 _debugController = _controller("Debug");
54 _gcController = _controller("GC"); 58 _gcController = _controller("GC");
55 _stdoutController = _controller("Stdout"); 59 _stdoutController = _controller("Stdout");
56 _stderrController = _controller("Stderr"); 60 _stderrController = _controller("Stderr");
61 _extensionController = _controller("Extension");
57 62
58 _peer.registerMethod("streamNotify", (params) { 63 _peer.registerMethod("streamNotify", (params) {
59 switch (params["streamId"].asString) { 64 switch (params["streamId"].asString) {
60 case "VM": 65 case "VM":
61 _vmController.add(params["event"].asMap); 66 _vmController.add(params["event"].asMap);
62 break; 67 break;
63 case "Isolate": 68 case "Isolate":
64 _isolateController.add(params["event"].asMap); 69 _isolateController.add(params["event"].asMap);
65 break; 70 break;
66 case "Debug": 71 case "Debug":
67 _debugController.add(params["event"].asMap); 72 _debugController.add(params["event"].asMap);
68 break; 73 break;
69 case "GC": 74 case "GC":
70 _gcController.add(params["event"].asMap); 75 _gcController.add(params["event"].asMap);
71 break; 76 break;
72 case "Stdout": 77 case "Stdout":
73 _stdoutController.add(params["event"].asMap); 78 _stdoutController.add(params["event"].asMap);
74 break; 79 break;
75 case "Stderr": 80 case "Stderr":
76 _stderrController.add(params["event"].asMap); 81 _stderrController.add(params["event"].asMap);
77 break; 82 break;
83 case "Extension":
84 _extensionController.add(params["event"].asMap);
85 break;
78 } 86 }
79 }); 87 });
80 88
81 _peer.done.then((_) { 89 _peer.done.then((_) {
82 _vmController.close(); 90 _vmController.close();
83 _isolateController.close(); 91 _isolateController.close();
84 _debugController.close(); 92 _debugController.close();
85 _gcController.close(); 93 _gcController.close();
86 _stderrController.close(); 94 _stderrController.close();
87 _stdoutController.close(); 95 _stdoutController.close();
96 _extensionController.close();
88 }, onError: (_) {}); 97 }, onError: (_) {});
89 } 98 }
90 99
91 /// Returns a broadcast [StreamController] for the stream with [streamID]. 100 /// Returns a broadcast [StreamController] for the stream with [streamID].
92 /// 101 ///
93 /// This controller subscribes to the stream when it has a listener and 102 /// This controller subscribes to the stream when it has a listener and
94 /// unsubscribes once it has no listeners. 103 /// unsubscribes once it has no listeners.
95 StreamController<Map> _controller(String streamID) { 104 StreamController<Map> _controller(String streamID) {
96 var controller; 105 var controller;
97 controller = new StreamController.broadcast(sync: true, onListen: () { 106 controller = new StreamController.broadcast(sync: true, onListen: () {
(...skipping 22 matching lines...) Expand all
120 _peer.sendRequest("streamCancel", { 129 _peer.sendRequest("streamCancel", {
121 "streamId": streamID 130 "streamId": streamID
122 }).catchError((_) { 131 }).catchError((_) {
123 // Do nothing if canceling the stream failed, since no one's listening 132 // Do nothing if canceling the stream failed, since no one's listening
124 // to it anyway. 133 // to it anyway.
125 }); 134 });
126 }); 135 });
127 return controller; 136 return controller;
128 } 137 }
129 } 138 }
OLDNEW
« no previous file with comments | « lib/src/scope.dart ('k') | test/isolate_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698