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

Side by Side Diff: pkg/dartino_compiler/lib/src/worker/developer.dart

Issue 1987673002: Initial Implementation of the vm-service protocol (Closed) Base URL: git@github.com:dartino/sdk.git@master
Patch Set: Keep track of terminated state Created 4 years, 6 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
OLDNEW
1 // Copyright (c) 2015, the Dartino project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dartino 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.md file. 3 // BSD-style license that can be found in the LICENSE.md file.
4 4
5 library dartino_compiler.worker.developer; 5 library dartino_compiler.worker.developer;
6 6
7 import 'dart:async' show 7 import 'dart:async' show
8 Future, 8 Future,
9 TimeoutException; 9 TimeoutException;
10 10
11 import 'dart:convert' show 11 import 'dart:convert' show
12 JSON, 12 JSON,
13 JsonEncoder, 13 JsonEncoder,
14 LineSplitter, 14 LineSplitter,
15 UTF8; 15 UTF8;
16 16
17 import 'dart:io' show 17 import 'dart:io' show
18 Directory, 18 Directory,
19 File, 19 File,
20 FileSystemEntity, 20 FileSystemEntity,
21 InternetAddress, 21 InternetAddress,
22 Platform, 22 Platform,
23 Process, 23 Process,
24 ProcessResult, 24 ProcessResult,
25 SocketException; 25 SocketException;
26 26
27 import 'dart:typed_data' show
28 Uint8List;
29
27 import 'package:sdk_services/sdk_services.dart' show 30 import 'package:sdk_services/sdk_services.dart' show
28 OutputService, 31 OutputService,
29 SDKServices, 32 SDKServices,
30 DownloadException; 33 DownloadException;
31 34
32 import 'package:dartino_agent/agent_connection.dart' show 35 import 'package:dartino_agent/agent_connection.dart' show
33 AgentConnection, 36 AgentConnection,
34 AgentException, 37 AgentException,
35 VmData; 38 VmData;
36 39
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 DartinoCompiler, 79 DartinoCompiler,
77 DartinoDelta, 80 DartinoDelta,
78 IncrementalCompiler, 81 IncrementalCompiler,
79 WorkerConnection, 82 WorkerConnection,
80 IsolatePool, 83 IsolatePool,
81 SharedTask, 84 SharedTask,
82 StreamIterator, 85 StreamIterator,
83 throwFatalError; 86 throwFatalError;
84 87
85 import '../../vm_context.dart' show 88 import '../../vm_context.dart' show
86 DartinoVmContext, 89 DartinoVmContext;
87 SinkDebugListener;
88 90
89 import '../../incremental/dartino_compiler_incremental.dart' show 91 import '../../incremental/dartino_compiler_incremental.dart' show
90 IncrementalCompilationFailed; 92 IncrementalCompilationFailed;
91 93
92 import '../dartino_compiler_options.dart' show 94 import '../dartino_compiler_options.dart' show
93 IncrementalMode, 95 IncrementalMode,
94 parseIncrementalMode, 96 parseIncrementalMode,
95 unparseIncrementalMode; 97 unparseIncrementalMode;
96 98
97 export '../dartino_compiler_options.dart' show 99 export '../dartino_compiler_options.dart' show
(...skipping 26 matching lines...) Expand all
124 BackTrace; 126 BackTrace;
125 127
126 import '../vm_connection.dart' show 128 import '../vm_connection.dart' show
127 TcpConnection, 129 TcpConnection,
128 VmConnection, 130 VmConnection,
129 connectToTty; 131 connectToTty;
130 132
131 import '../dartino_compiler_options.dart' show 133 import '../dartino_compiler_options.dart' show
132 DartinoCompilerOptions; 134 DartinoCompilerOptions;
133 135
136 import '../../vm_context.dart' show DebugListener;
137
134 import '../hub/exit_codes.dart' show 138 import '../hub/exit_codes.dart' show
135 INPUT_ERROR; 139 INPUT_ERROR;
136 140
137 import '../diagnostic.dart' show 141 import '../diagnostic.dart' show
138 InputError; 142 InputError;
139 143
140 typedef Future<Null> ClientEventHandler(DartinoVmContext vmContext); 144 typedef Future<Null> ClientEventHandler(DartinoVmContext vmContext);
141 145
142 Uri configFileUri; 146 Uri configFileUri;
143 147
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 ttyDevice, "vmTty", state.log); 256 ttyDevice, "vmTty", state.log);
253 await attachToVm(connection, state, maxTimeSpent: new Duration(seconds: 20)); 257 await attachToVm(connection, state, maxTimeSpent: new Duration(seconds: 20));
254 } 258 }
255 259
256 Future<Null> attachToVmTcp(String host, int port, SessionState state) async { 260 Future<Null> attachToVmTcp(String host, int port, SessionState state) async {
257 TcpConnection connection = await TcpConnection.connect( 261 TcpConnection connection = await TcpConnection.connect(
258 host, port, "vmSocket", state.log); 262 host, port, "vmSocket", state.log);
259 await attachToVm(connection, state); 263 await attachToVm(connection, state);
260 } 264 }
261 265
266 class SinkDebugListener extends DebugListener {
267 final Sink stdoutSink;
268 final Sink stderrSink;
269 SinkDebugListener(this.stdoutSink, this.stderrSink);
270
271 // Notification of bytes written to stdout.
272 writeStdOut(int processId, Uint8List data) {
273 stdoutSink.add(data);
274 }
275
276 // Notification of bytes written stderr.
277 writeStdErr(int processId, Uint8List data) {
278 stderrSink.add(data);
279 }
280 }
281
262 Future<Null> attachToVm( 282 Future<Null> attachToVm(
263 VmConnection connection, 283 VmConnection connection,
264 SessionState state, 284 SessionState state,
265 {Duration maxTimeSpent}) async { 285 {Duration maxTimeSpent}) async {
266 DartinoVmContext vmContext = new DartinoVmContext( 286 DartinoVmContext vmContext = new DartinoVmContext(
267 connection, 287 connection,
268 state.compiler, 288 state.compiler,
269 null); 289 null);
270 290
271 vmContext.listeners.add( 291 vmContext.listeners.add(
(...skipping 1862 matching lines...) Expand 10 before | Expand all | Expand 10 after
2134 addIfNotNull("open_ocd_board", open_ocd_board); 2154 addIfNotNull("open_ocd_board", open_ocd_board);
2135 return result; 2155 return result;
2136 } 2156 }
2137 } 2157 }
2138 2158
2139 Uri defaultSnapshotLocation(Uri script) { 2159 Uri defaultSnapshotLocation(Uri script) {
2140 // TODO(sgjesse): Use a temp directory for the snapshot. 2160 // TODO(sgjesse): Use a temp directory for the snapshot.
2141 String snapshotName = basenameWithoutExtension(script.path) + '.snapshot'; 2161 String snapshotName = basenameWithoutExtension(script.path) + '.snapshot';
2142 return script.resolve(snapshotName); 2162 return script.resolve(snapshotName);
2143 } 2163 }
OLDNEW
« no previous file with comments | « pkg/dartino_compiler/lib/src/verbs/infrastructure.dart ('k') | pkg/dartino_compiler/lib/vm_commands.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698