Index: pkg/analysis_server/lib/src/channel/web_socket_channel.dart |
diff --git a/pkg/analysis_server/lib/src/channel/web_socket_channel.dart b/pkg/analysis_server/lib/src/channel/web_socket_channel.dart |
deleted file mode 100644 |
index 072ab4117956e70b51841fb652fb5e5aae583814..0000000000000000000000000000000000000000 |
--- a/pkg/analysis_server/lib/src/channel/web_socket_channel.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/src/analysis_server.dart'; |
-import 'package:analysis_server/src/channel/channel.dart'; |
-import 'package:analyzer/instrumentation/instrumentation.dart'; |
- |
-/** |
- * Instances of the class [WebSocketClientChannel] implement a |
- * [ClientCommunicationChannel] that uses a [WebSocket] to communicate with |
- * servers. |
- */ |
-class WebSocketClientChannel implements ClientCommunicationChannel { |
- /** |
- * The socket being wrapped. |
- */ |
- final WebSocket socket; |
- |
- @override |
- Stream<Response> responseStream; |
- |
- @override |
- Stream<Notification> notificationStream; |
- |
- /** |
- * Initialize a new [WebSocket] wrapper for the given [socket]. |
- */ |
- WebSocketClientChannel(this.socket) { |
- Stream jsonStream = socket |
- .where((data) => data is String) |
- .transform(new JsonStreamDecoder()) |
- .where((json) => json is Map) |
- .asBroadcastStream(); |
- responseStream = jsonStream |
- .where((json) => json[Notification.EVENT] == null) |
- .transform(new ResponseConverter()) |
- .asBroadcastStream(); |
- notificationStream = jsonStream |
- .where((json) => json[Notification.EVENT] != null) |
- .transform(new NotificationConverter()) |
- .asBroadcastStream(); |
- } |
- |
- @override |
- Future close() { |
- return socket.close(); |
- } |
- |
- @override |
- Future<Response> sendRequest(Request request) async { |
- String id = request.id; |
- socket.add(JSON.encode(request.toJson())); |
- return await responseStream |
- .firstWhere((Response response) => response.id == id); |
- } |
-} |
- |
-/** |
- * Instances of the class [WebSocketServerChannel] implement a |
- * [ServerCommunicationChannel] that uses a [WebSocket] to communicate with |
- * clients. |
- */ |
-class WebSocketServerChannel implements ServerCommunicationChannel { |
- /** |
- * The socket being wrapped. |
- */ |
- final WebSocket socket; |
- |
- /** |
- * The instrumentation service that is to be used by this analysis server. |
- */ |
- final InstrumentationService instrumentationService; |
- |
- /** |
- * Initialize a newly create [WebSocket] wrapper to wrap the given [socket]. |
- */ |
- WebSocketServerChannel(this.socket, this.instrumentationService); |
- |
- @override |
- void close() { |
- socket.close(WebSocketStatus.NORMAL_CLOSURE); |
- } |
- |
- @override |
- void listen(void onRequest(Request request), |
- {Function onError, void onDone()}) { |
- socket.listen((data) => readRequest(data, onRequest), |
- onError: onError, onDone: onDone); |
- } |
- |
- /** |
- * Read a request from the given [data] and use the given function to handle |
- * the request. |
- */ |
- void readRequest(Object data, void onRequest(Request request)) { |
- if (data is String) { |
- instrumentationService.logRequest(data); |
- // Parse the string as a JSON descriptor and process the resulting |
- // structure as a request. |
- ServerPerformanceStatistics.serverChannel.makeCurrentWhile(() { |
- Request request = new Request.fromString(data); |
- if (request == null) { |
- sendResponse(new Response.invalidRequestFormat()); |
- return; |
- } |
- onRequest(request); |
- }); |
- } else if (data is List<int>) { |
- // TODO(brianwilkerson) Implement a more efficient protocol. |
- sendResponse(new Response.invalidRequestFormat()); |
- } else { |
- sendResponse(new Response.invalidRequestFormat()); |
- } |
- } |
- |
- @override |
- void sendNotification(Notification notification) { |
- ServerPerformanceStatistics.serverChannel.makeCurrentWhile(() { |
- String jsonEncoding = JSON.encode(notification.toJson()); |
- socket.add(jsonEncoding); |
- instrumentationService.logNotification(jsonEncoding); |
- }); |
- } |
- |
- @override |
- void sendResponse(Response response) { |
- ServerPerformanceStatistics.serverChannel.makeCurrentWhile(() { |
- String jsonEncoding = JSON.encode(response.toJson()); |
- socket.add(jsonEncoding); |
- instrumentationService.logResponse(jsonEncoding); |
- }); |
- } |
-} |