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.two_way_stream; | |
6 | |
7 import 'dart:async'; | 5 import 'dart:async'; |
8 import 'dart:convert'; | 6 import 'dart:convert'; |
9 | 7 |
10 import 'utils.dart'; | 8 import 'utils.dart'; |
11 | 9 |
12 /// A class for managing a stream of input messages and a sink for output | 10 /// A class for managing a stream of input messages and a sink for output |
13 /// messages. | 11 /// messages. |
14 /// | 12 /// |
15 /// This contains stream logic that's shared between [Server] and [Client]. | 13 /// This contains stream logic that's shared between [Server] and [Client]. |
16 class TwoWayStream { | 14 class TwoWayStream { |
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 | 126 |
129 if (!_doneCompleter.isCompleted) _doneCompleter.complete(); | 127 if (!_doneCompleter.isCompleted) _doneCompleter.complete(); |
130 | 128 |
131 var inputFuture = _inputSubscription.cancel(); | 129 var inputFuture = _inputSubscription.cancel(); |
132 // TODO(nweiz): include the output future in the return value when issue | 130 // TODO(nweiz): include the output future in the return value when issue |
133 // 19095 is fixed. | 131 // 19095 is fixed. |
134 _output.close(); | 132 _output.close(); |
135 return inputFuture == null ? new Future.value() : inputFuture; | 133 return inputFuture == null ? new Future.value() : inputFuture; |
136 } | 134 } |
137 } | 135 } |
OLD | NEW |