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

Unified Diff: pkg/analysis_server/lib/src/analysis_manager.dart

Issue 2959713002: Remove more dead code (Closed)
Patch Set: Created 3 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/channel/web_socket_channel.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/lib/src/analysis_manager.dart
diff --git a/pkg/analysis_server/lib/src/analysis_manager.dart b/pkg/analysis_server/lib/src/analysis_manager.dart
deleted file mode 100644
index 6ad09d07814226f17cd1f45ad753c5de26d1fc85..0000000000000000000000000000000000000000
--- a/pkg/analysis_server/lib/src/analysis_manager.dart
+++ /dev/null
@@ -1,139 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'dart:async';
-import 'dart:convert';
-import 'dart:io';
-
-import 'package:analysis_server/protocol/protocol.dart';
-import 'package:analysis_server/protocol/protocol_generated.dart';
-import 'package:analysis_server/src/channel/channel.dart';
-import 'package:analysis_server/src/channel/web_socket_channel.dart';
-
-/**
- * [AnalysisManager] is used to launch and manage an analysis server
- * running in a separate process using either the [start] or [connect] methods.
- */
-class AnalysisManager {
- // TODO dynamically allocate port and/or allow client to specify port
- static const int PORT = 3333;
-
- /**
- * The analysis server process being managed
- * or `null` if managing an analysis server that was already running.
- */
- Process process;
-
- /**
- * The channel used to communicate with the analysis server.
- */
- ClientCommunicationChannel channel;
-
- /**
- * Stop the analysis server.
- *
- * Returns `true` if the signal is successfully sent and process terminates.
- * Otherwise there was no attached process or the signal could not be sent,
- * usually meaning that the process is already dead.
- */
- Future<bool> stop() async {
- if (process == null) {
- await channel.close();
- return false;
- }
- int result = await channel
- .sendRequest(new ServerShutdownParams().toRequest('0'))
- .timeout(new Duration(seconds: 2), onTimeout: () {
- print('Expected shutdown response');
- }).then((Response response) {
- return channel.close().then((_) => process.exitCode);
- }).timeout(new Duration(seconds: 2), onTimeout: () {
- print('Expected server to shutdown');
- process.kill();
- });
- if (result != null && result != 0) {
- exitCode = result;
- }
- return true;
- }
-
- /**
- * Launch an analysis server and open a connection to that server.
- */
- Future<AnalysisManager> _launchServer(String pathToServer) async {
- try {
- // TODO dynamically allocate port and/or allow client to specify port
- List<String> serverArgs = [pathToServer, '--port', PORT.toString()];
- Process process = await Process.start(Platform.executable, serverArgs);
- return _listenForPort(process);
- } catch (error) {
- exitCode = 1;
- throw 'Failed to launch analysis server: $error';
- }
- }
-
- /**
- * Listen for a port from the given analysis server process.
- */
- Future<AnalysisManager> _listenForPort(Process process) async {
- this.process = process;
-
- // Echo stdout and stderr
- Stream out = process.stdout.transform(UTF8.decoder).asBroadcastStream();
- out.listen((line) => print(line));
- process.stderr.pipe(stderr);
-
- // Listen for port from server
- const String pattern = 'Listening on port ';
- try {
- String line = await out
- .firstWhere((String line) => line.startsWith(pattern))
- .timeout(new Duration(seconds: 10));
- String port = line.substring(pattern.length).trim();
- String url = 'ws://${InternetAddress.LOOPBACK_IP_V4.address}:$port/';
- return _openConnection(url);
- } catch (error) {
- exitCode = 1;
- process.kill();
- throw 'Expected port from analysis server';
- }
- }
-
- /**
- * Open a connection to the analysis server using the given URL.
- */
- Future<AnalysisManager> _openConnection(String serverUrl) async {
- Function onError = (error) {
- exitCode = 1;
- if (process != null) {
- process.kill();
- }
- throw 'Failed to connect to analysis server at $serverUrl\n $error';
- };
- try {
- WebSocket socket = await WebSocket.connect(serverUrl).catchError(onError);
- this.channel = new WebSocketClientChannel(socket);
- return this;
- } catch (error) {
- onError(error);
- }
- return null;
- }
-
- /**
- * Open a connection to a running analysis server
- * and return a future with a manager for that analysis server.
- */
- static Future<AnalysisManager> connect(String serverUrl) {
- return new AnalysisManager()._openConnection(serverUrl);
- }
-
- /**
- * Launch analysis server in a separate process
- * and return a future with a manager for that analysis server.
- */
- static Future<AnalysisManager> start(String serverPath) {
- return new AnalysisManager()._launchServer(serverPath);
- }
-}
« no previous file with comments | « no previous file | pkg/analysis_server/lib/src/channel/web_socket_channel.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698