OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 /** | 5 /** |
6 * [ListInputStream] makes it possible to use the [InputStream] | 6 * [ListInputStream] makes it possible to use the [InputStream] |
7 * interface to stream over data that is received in chunks as lists | 7 * interface to stream over data that is received in chunks as lists |
8 * of integers. | 8 * of integers. |
9 * | 9 * |
10 * When a new list of integers is received it can be written to the | 10 * When a new list of integers is received it can be written to the |
11 * [ListInputStream] using the [write] method. The [markEndOfStream] | 11 * [ListInputStream] using the [write] method. The [markEndOfStream] |
12 * method must be called when the last data has been written to the | 12 * method must be called when the last data has been written to the |
13 * [ListInputStream]. | 13 * [ListInputStream]. |
14 */ | 14 */ |
15 interface ListInputStream extends InputStream default _ListInputStream { | 15 abstract class ListInputStream implements InputStream { |
16 /** | 16 /** |
17 * Create an empty [ListInputStream] to which data can be written | 17 * Create an empty [ListInputStream] to which data can be written |
18 * using the [write] method. | 18 * using the [write] method. |
19 */ | 19 */ |
20 ListInputStream(); | 20 factory ListInputStream() => new _ListInputStream(); |
21 | 21 |
22 /** | 22 /** |
23 * Write more data to be streamed over to the [ListInputStream]. | 23 * Write more data to be streamed over to the [ListInputStream]. |
24 */ | 24 */ |
25 void write(List<int> data); | 25 void write(List<int> data); |
26 | 26 |
27 /** | 27 /** |
28 * Notify the [ListInputStream] that no more data will be written to | 28 * Notify the [ListInputStream] that no more data will be written to |
29 * it. | 29 * it. |
30 */ | 30 */ |
31 void markEndOfStream(); | 31 void markEndOfStream(); |
32 } | 32 } |
33 | 33 |
34 | 34 |
35 /** | 35 /** |
36 * [ListOutputStream] makes it possible to use the [OutputStream] | 36 * [ListOutputStream] makes it possible to use the [OutputStream] |
37 * interface to write data to a [List] of integers. | 37 * interface to write data to a [List] of integers. |
38 */ | 38 */ |
39 interface ListOutputStream extends OutputStream default _ListOutputStream { | 39 abstract class ListOutputStream implements OutputStream { |
40 /** | 40 /** |
41 * Create a [ListOutputStream]. | 41 * Create a [ListOutputStream]. |
42 */ | 42 */ |
43 ListOutputStream(); | 43 factory ListOutputStream() => new _ListOutputStream(); |
44 | 44 |
45 /** | 45 /** |
46 * Reads all available data from the stream. If no data is available `null` | 46 * Reads all available data from the stream. If no data is available `null` |
47 * will be returned. | 47 * will be returned. |
48 */ | 48 */ |
49 List<int> read(); | 49 List<int> read(); |
50 | 50 |
51 /** | 51 /** |
52 * Sets the handler that gets called when data is available. | 52 * Sets the handler that gets called when data is available. |
53 */ | 53 */ |
54 void set onData(void callback()); | 54 void set onData(void callback()); |
55 } | 55 } |
OLD | NEW |