OLD | NEW |
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 json_rpc_2.server; | 5 library json_rpc_2.server; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:collection'; | 8 import 'dart:collection'; |
9 import 'dart:convert'; | 9 import 'dart:convert'; |
10 | 10 |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 /// | 62 /// |
63 /// If [requests] is a [StreamSink] as well as a [Stream], [responses] may be | 63 /// If [requests] is a [StreamSink] as well as a [Stream], [responses] may be |
64 /// omitted. | 64 /// omitted. |
65 /// | 65 /// |
66 /// Note that the server won't begin listening to [requests] until | 66 /// Note that the server won't begin listening to [requests] until |
67 /// [Server.listen] is called. | 67 /// [Server.listen] is called. |
68 Server.withoutJson(Stream requests, [StreamSink responses]) | 68 Server.withoutJson(Stream requests, [StreamSink responses]) |
69 : _streams = new TwoWayStream.withoutJson( | 69 : _streams = new TwoWayStream.withoutJson( |
70 "Server", requests, "requests", responses, "responses"); | 70 "Server", requests, "requests", responses, "responses"); |
71 | 71 |
| 72 /// Users of the library should not use this constructor. |
| 73 Server.internal(this._streams); |
| 74 |
72 /// Starts listening to the underlying stream. | 75 /// Starts listening to the underlying stream. |
73 /// | 76 /// |
74 /// Returns a [Future] that will complete when the stream is closed or when it | 77 /// Returns a [Future] that will complete when the stream is closed or when it |
75 /// has an error. | 78 /// has an error. |
76 /// | 79 /// |
77 /// [listen] may only be called once. | 80 /// [listen] may only be called once. |
78 Future listen() => _streams.listen(_handleRequest); | 81 Future listen() => _streams.listen(_handleRequest); |
79 | 82 |
80 /// Closes the server's request subscription and response sink. | 83 /// Closes the server's request subscription and response sink. |
81 /// | 84 /// |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 return syncFuture(() => iterator.current(params)).catchError((error) { | 240 return syncFuture(() => iterator.current(params)).catchError((error) { |
238 if (error is! RpcException) throw error; | 241 if (error is! RpcException) throw error; |
239 if (error.code != error_code.METHOD_NOT_FOUND) throw error; | 242 if (error.code != error_code.METHOD_NOT_FOUND) throw error; |
240 return _tryNext(); | 243 return _tryNext(); |
241 }); | 244 }); |
242 } | 245 } |
243 | 246 |
244 return _tryNext(); | 247 return _tryNext(); |
245 } | 248 } |
246 } | 249 } |
OLD | NEW |