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

Side by Side Diff: pkg/analysis_server/lib/src/server/http_server.dart

Issue 2530273004: Status page for the new analysis driver. (Closed)
Patch Set: Fixes for review comments. Created 4 years 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) 2014, the Dart project authors. Please see the AUTHORS file 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 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 library analysis_server.src.server.http_server; 5 library analysis_server.src.server.http_server;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:io'; 8 import 'dart:io';
9 9
10 import 'package:analysis_server/src/channel/web_socket_channel.dart'; 10 import 'package:analysis_server/src/channel/web_socket_channel.dart';
11 import 'package:analysis_server/src/socket_server.dart'; 11 import 'package:analysis_server/src/socket_server.dart';
12 import 'package:analysis_server/src/status/get_handler.dart'; 12 import 'package:analysis_server/src/status/get_handler.dart';
13 import 'package:analysis_server/src/status/get_handler2.dart';
13 14
14 /** 15 /**
15 * Instances of the class [HttpServer] implement a simple HTTP server. The 16 * Instances of the class [HttpServer] implement a simple HTTP server. The
16 * primary responsibility of this server is to listen for an UPGRADE request and 17 * primary responsibility of this server is to listen for an UPGRADE request and
17 * to start an analysis server. 18 * to start an analysis server.
18 */ 19 */
19 class HttpAnalysisServer { 20 class HttpAnalysisServer {
20 /** 21 /**
21 * Number of lines of print output to capture. 22 * Number of lines of print output to capture.
22 */ 23 */
23 static const int MAX_PRINT_BUFFER_LENGTH = 1000; 24 static const int MAX_PRINT_BUFFER_LENGTH = 1000;
24 25
25 /** 26 /**
26 * An object that can handle either a WebSocket connection or a connection 27 * An object that can handle either a WebSocket connection or a connection
27 * to the client over stdio. 28 * to the client over stdio.
28 */ 29 */
29 SocketServer socketServer; 30 SocketServer socketServer;
30 31
31 /** 32 /**
32 * An object that can handle GET requests. 33 * An object that can handle GET requests.
33 */ 34 */
34 GetHandler getHandler; 35 AbstractGetHandler getHandler;
35 36
36 /** 37 /**
37 * Future that is completed with the HTTP server once it is running. 38 * Future that is completed with the HTTP server once it is running.
38 */ 39 */
39 Future<HttpServer> _server; 40 Future<HttpServer> _server;
40 41
41 /** 42 /**
42 * Last PRINT_BUFFER_LENGTH lines printed. 43 * Last PRINT_BUFFER_LENGTH lines printed.
43 */ 44 */
44 List<String> _printBuffer = <String>[]; 45 List<String> _printBuffer = <String>[];
(...skipping 26 matching lines...) Expand all
71 void serveHttp(int port) { 72 void serveHttp(int port) {
72 _server = HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, port); 73 _server = HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, port);
73 _server.then(_handleServer).catchError((_) {/* Ignore errors. */}); 74 _server.then(_handleServer).catchError((_) {/* Ignore errors. */});
74 } 75 }
75 76
76 /** 77 /**
77 * Handle a GET request received by the HTTP server. 78 * Handle a GET request received by the HTTP server.
78 */ 79 */
79 void _handleGetRequest(HttpRequest request) { 80 void _handleGetRequest(HttpRequest request) {
80 if (getHandler == null) { 81 if (getHandler == null) {
81 getHandler = new GetHandler(socketServer, _printBuffer); 82 if (socketServer.analysisServer.options.enableNewAnalysisDriver) {
83 getHandler = new GetHandler2(socketServer, _printBuffer);
84 } else {
85 getHandler = new GetHandler(socketServer, _printBuffer);
86 }
82 } 87 }
83 getHandler.handleGetRequest(request); 88 getHandler.handleGetRequest(request);
84 } 89 }
85 90
86 /** 91 /**
87 * Attach a listener to a newly created HTTP server. 92 * Attach a listener to a newly created HTTP server.
88 */ 93 */
89 void _handleServer(HttpServer httpServer) { 94 void _handleServer(HttpServer httpServer) {
90 httpServer.listen((HttpRequest request) { 95 httpServer.listen((HttpRequest request) {
91 List<String> updateValues = request.headers[HttpHeaders.UPGRADE]; 96 List<String> updateValues = request.headers[HttpHeaders.UPGRADE];
(...skipping 24 matching lines...) Expand all
116 */ 121 */
117 void _returnUnknownRequest(HttpRequest request) { 122 void _returnUnknownRequest(HttpRequest request) {
118 HttpResponse response = request.response; 123 HttpResponse response = request.response;
119 response.statusCode = HttpStatus.NOT_FOUND; 124 response.statusCode = HttpStatus.NOT_FOUND;
120 response.headers.contentType = 125 response.headers.contentType =
121 new ContentType("text", "plain", charset: "utf-8"); 126 new ContentType("text", "plain", charset: "utf-8");
122 response.write('Not found'); 127 response.write('Not found');
123 response.close(); 128 response.close();
124 } 129 }
125 } 130 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698