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

Side by Side Diff: pkg/analysis_server/lib/src/channel/channel.dart

Issue 1847843002: Steps towards making the convert library strong-mode compliant. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Relax type and fix missed converters. Created 4 years, 8 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) 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 channel; 5 library channel;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:convert'; 8 import 'dart:convert';
9 9
10 import 'package:analysis_server/plugin/protocol/protocol.dart'; 10 import 'package:analysis_server/plugin/protocol/protocol.dart';
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 * Send the given [request] to the server 78 * Send the given [request] to the server
79 * and return a future with the associated [Response]. 79 * and return a future with the associated [Response].
80 */ 80 */
81 Future<Response> sendRequest(Request request); 81 Future<Response> sendRequest(Request request);
82 } 82 }
83 83
84 /** 84 /**
85 * Instances of the class [JsonStreamDecoder] convert JSON strings to JSON 85 * Instances of the class [JsonStreamDecoder] convert JSON strings to JSON
86 * maps. 86 * maps.
87 */ 87 */
88 class JsonStreamDecoder extends Converter<String, Map> { 88 class JsonStreamDecoder extends
89 ChunkedConverter<String, Map, String, Map> {
89 @override 90 @override
90 Map convert(String text) => JSON.decode(text); 91 Map convert(String text) => JSON.decode(text);
91 92
92 @override 93 @override
93 ChunkedConversionSink startChunkedConversion(Sink sink) => 94 ChunkedConversionSink<String> startChunkedConversion(Sink<Map> sink) =>
94 new ChannelChunkSink<String, Map>(this, sink); 95 new ChannelChunkSink<String, Map>(this, sink);
95 } 96 }
96 97
97 /** 98 /**
98 * Instances of the class [NotificationConverter] convert JSON maps to 99 * Instances of the class [NotificationConverter] convert JSON maps to
99 * [Notification]s. 100 * [Notification]s.
100 */ 101 */
101 class NotificationConverter extends Converter<Map, Notification> { 102 class NotificationConverter extends
103 ChunkedConverter<Map, Notification, Map, Notification> {
102 @override 104 @override
103 Notification convert(Map json) => new Notification.fromJson(json); 105 Notification convert(Map json) => new Notification.fromJson(json);
104 106
105 @override 107 @override
106 ChunkedConversionSink startChunkedConversion(Sink sink) => 108 ChunkedConversionSink<Map> startChunkedConversion(Sink<Notification> sink) =>
107 new ChannelChunkSink<Map, Notification>(this, sink); 109 new ChannelChunkSink<Map, Notification>(this, sink);
108 } 110 }
109 111
110 /** 112 /**
111 * Instances of the class [ResponseConverter] convert JSON maps to [Response]s. 113 * Instances of the class [ResponseConverter] convert JSON maps to [Response]s.
112 */ 114 */
113 class ResponseConverter extends Converter<Map, Response> { 115 class ResponseConverter extends
116 ChunkedConverter<Map, Response, Map, Response> {
114 @override 117 @override
115 Response convert(Map json) => new Response.fromJson(json); 118 Response convert(Map json) => new Response.fromJson(json);
116 119
117 @override 120 @override
118 ChunkedConversionSink startChunkedConversion(Sink sink) => 121 ChunkedConversionSink<Map> startChunkedConversion(Sink<Response> sink) =>
119 new ChannelChunkSink<Map, Response>(this, sink); 122 new ChannelChunkSink<Map, Response>(this, sink);
120 } 123 }
121 124
122 /** 125 /**
123 * The abstract class [ServerCommunicationChannel] defines the behavior of 126 * The abstract class [ServerCommunicationChannel] defines the behavior of
124 * objects that allow an [AnalysisServer] to receive [Request]s and to return 127 * objects that allow an [AnalysisServer] to receive [Request]s and to return
125 * both [Response]s and [Notification]s. 128 * both [Response]s and [Notification]s.
126 */ 129 */
127 abstract class ServerCommunicationChannel { 130 abstract class ServerCommunicationChannel {
128 /** 131 /**
(...skipping 14 matching lines...) Expand all
143 /** 146 /**
144 * Send the given [notification] to the client. 147 * Send the given [notification] to the client.
145 */ 148 */
146 void sendNotification(Notification notification); 149 void sendNotification(Notification notification);
147 150
148 /** 151 /**
149 * Send the given [response] to the client. 152 * Send the given [response] to the client.
150 */ 153 */
151 void sendResponse(Response response); 154 void sendResponse(Response response);
152 } 155 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/benchmark/integration/input_converter.dart ('k') | runtime/lib/convert_patch.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698