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

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

Issue 2703033002: Add a diagnostic.getServerPort analysis server request. (Closed)
Patch Set: nits to the spec doc Created 3 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/lib/src/domain_diagnostic.dart
diff --git a/pkg/analysis_server/lib/src/domain_diagnostic.dart b/pkg/analysis_server/lib/src/domain_diagnostic.dart
index d91aacf886083dab04a6962b2898a0b34d57a185..738f12982115d6c8e6a7bdd0a205fded6569d917 100644
--- a/pkg/analysis_server/lib/src/domain_diagnostic.dart
+++ b/pkg/analysis_server/lib/src/domain_diagnostic.dart
@@ -4,11 +4,13 @@
library analysis_server.src.domain_diagnostic;
+import 'dart:async';
import 'dart:collection';
import 'dart:core';
import 'package:analysis_server/plugin/protocol/protocol.dart';
import 'package:analysis_server/src/analysis_server.dart';
+import 'package:analysis_server/src/constants.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/context/context.dart';
import 'package:analyzer/src/dart/analysis/driver.dart' as nd;
@@ -27,9 +29,6 @@ int _workItemCount(AnalysisContextImpl context) {
/// Instances of the class [DiagnosticDomainHandler] implement a
/// [RequestHandler] that handles requests in the `diagnostic` domain.
class DiagnosticDomainHandler implements RequestHandler {
- /// The name of the request used to get diagnostic information.
- static const String DIAGNOSTICS = 'diagnostic.getDiagnostics';
-
/// The analysis server that is using this handler to process requests.
final AnalysisServer server;
@@ -37,7 +36,7 @@ class DiagnosticDomainHandler implements RequestHandler {
/// [server].
DiagnosticDomainHandler(this.server);
- /// Answer the `diagnostic.diagnostics` request.
+ /// Answer the `diagnostic.getDiagnostics` request.
Response computeDiagnostics(Request request) {
List<ContextData> contexts = <ContextData>[];
if (server.options.enableNewAnalysisDriver) {
@@ -101,12 +100,28 @@ class DiagnosticDomainHandler implements RequestHandler {
Response handleRequest(Request request) {
try {
String requestName = request.method;
- if (requestName == DIAGNOSTICS) {
+ if (requestName == DIAGNOSTIC_GET_DIAGNOSTICS) {
return computeDiagnostics(request);
+ } else if (requestName == DIAGNOSTIC_GET_SERVER_PORT) {
+ handleGetServerPort(request);
+ return Response.DELAYED_RESPONSE;
}
} on RequestFailure catch (exception) {
return exception.response;
}
return null;
}
+
+ /// Answer the `diagnostic.getServerPort` request.
+ Future handleGetServerPort(Request request) async {
+ try {
+ // Open a port (or return the existing one).
+ int port = await server.diagnosticServer.getServerPort();
+ server.sendResponse(
+ new DiagnosticGetServerPortResult(port).toResponse(request.id));
+ } catch (error) {
+ server
+ .sendResponse(new Response.debugPortCouldNotBeOpened(request, error));
+ }
+ }
}
« no previous file with comments | « pkg/analysis_server/lib/src/constants.dart ('k') | pkg/analysis_server/lib/src/server/diagnostic_server.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698