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 * Basic input stream which supplies binary data. | 6 * Basic input stream which supplies binary data. |
7 * | 7 * |
8 * Input streams are used to read data sequentially from some data | 8 * Input streams are used to read data sequentially from some data |
9 * source. All input streams are non-blocking. They each have a number | 9 * source. All input streams are non-blocking. They each have a number |
10 * of read calls which will always return without any IO related | 10 * of read calls which will always return without any IO related |
11 * blocking. If the requested data is not available a read call will | 11 * blocking. If the requested data is not available a read call will |
12 * return [:null:]. All input streams have one or more handlers which | 12 * return [:null:]. All input streams have one or more handlers which |
13 * will trigger when data is available. | 13 * will trigger when data is available. |
14 * | 14 * |
15 * The following example shows a data handler in an ordinary input | 15 * The following example shows a data handler in an ordinary input |
16 * stream which will be called when some data is available and a call | 16 * stream which will be called when some data is available and a call |
17 * to read will not return [:null:]. | 17 * to read will not return [:null:]. |
18 * | 18 * |
19 * [: | 19 * [: |
20 * InputStream input = ... | 20 * InputStream input = ... |
21 * input.dataHandler = () { | 21 * input.onData = () { |
22 * var data = input.read(); | 22 * var data = input.read(); |
23 * ... | 23 * ... |
24 * }; | 24 * }; |
25 * :] | 25 * :] |
26 * | 26 * |
27 * If for some reason the data from an input stream cannot be handled | 27 * If for some reason the data from an input stream cannot be handled |
28 * by the application immediately setting the data handler to [:null:] | 28 * by the application immediately setting the data handler to [:null:] |
29 * will avoid further callbacks until it is set to a function | 29 * will avoid further callbacks until it is set to a function |
30 * again. While the data handler is not active system flow control | 30 * again. While the data handler is not active system flow control |
31 * will be used to avoid buffering more data than needed. | 31 * will be used to avoid buffering more data than needed. |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
76 | 76 |
77 /** | 77 /** |
78 * Returns whether the stream is closed. There will be no more data | 78 * Returns whether the stream is closed. There will be no more data |
79 * to read. | 79 * to read. |
80 */ | 80 */ |
81 bool get closed(); | 81 bool get closed(); |
82 | 82 |
83 /** | 83 /** |
84 * Sets the handler that gets called when data is available. | 84 * Sets the handler that gets called when data is available. |
85 */ | 85 */ |
86 void set dataHandler(void callback()); | 86 void set onData(void callback()); |
87 | 87 |
88 /** | 88 /** |
89 * Sets the handler that gets called when there will be no more data | 89 * Sets the handler that gets called when there will be no more data |
90 * available in the stream. | 90 * available in the stream. |
91 */ | 91 */ |
92 void set closeHandler(void callback()); | 92 void set onClosed(void callback()); |
93 | 93 |
94 /** | 94 /** |
95 * Sets the handler that gets called when the underlying | 95 * Sets the handler that gets called when the underlying |
96 * communication channel gets into some kind of error situation. | 96 * communication channel gets into some kind of error situation. |
97 */ | 97 */ |
98 void set errorHandler(void callback()); | 98 void set onError(void callback()); |
99 } | 99 } |
100 | 100 |
101 | 101 |
102 /** | 102 /** |
103 * A string input stream wraps a basic input stream and supplies | 103 * A string input stream wraps a basic input stream and supplies |
104 * string data. This data can be read either as string chunks or as | 104 * string data. This data can be read either as string chunks or as |
105 * lines separated by line termination character sequences. | 105 * lines separated by line termination character sequences. |
106 */ | 106 */ |
107 interface StringInputStream default _StringInputStream { | 107 interface StringInputStream default _StringInputStream { |
108 /** | 108 /** |
(...skipping 21 matching lines...) Expand all Loading... |
130 */ | 130 */ |
131 bool get closed(); | 131 bool get closed(); |
132 | 132 |
133 /** | 133 /** |
134 * Returns the encoding used to decode the binary data into characters. | 134 * Returns the encoding used to decode the binary data into characters. |
135 */ | 135 */ |
136 String get encoding(); | 136 String get encoding(); |
137 | 137 |
138 /** | 138 /** |
139 * Sets the handler that gets called when data is available. The two | 139 * Sets the handler that gets called when data is available. The two |
140 * handlers [dataHandler] and [lineHandler] are mutually exclusive | 140 * handlers [onData] and [onLine] are mutually exclusive |
141 * and setting one will remove the other. | 141 * and setting one will remove the other. |
142 */ | 142 */ |
143 void set dataHandler(void callback()); | 143 void set onData(void callback()); |
144 | 144 |
145 /** | 145 /** |
146 * Sets the handler that gets called when a line is available. The | 146 * Sets the handler that gets called when a line is available. The |
147 * two handlers [dataHandler] and [lineHandler] are mutually | 147 * two handlers [onData] and [onLine] are mutually |
148 * exclusive and setting one will remove the other. | 148 * exclusive and setting one will remove the other. |
149 */ | 149 */ |
150 void set lineHandler(void callback()); | 150 void set onLine(void callback()); |
151 | 151 |
152 /** | 152 /** |
153 * Sets the handler that gets called when there will be no more data | 153 * Sets the handler that gets called when there will be no more data |
154 * available in the stream. | 154 * available in the stream. |
155 */ | 155 */ |
156 void set closeHandler(void callback()); | 156 void set onClosed(void callback()); |
157 | 157 |
158 /** | 158 /** |
159 * Sets the handler that gets called when the underlying | 159 * Sets the handler that gets called when the underlying |
160 * communication channel gets into some kind of error situation. | 160 * communication channel gets into some kind of error situation. |
161 */ | 161 */ |
162 void set errorHandler(void callback()); | 162 void set onError(void callback()); |
163 } | 163 } |
164 | 164 |
165 | 165 |
166 /** | 166 /** |
167 * A chunked input stream wraps a basic input stream and supplies | 167 * A chunked input stream wraps a basic input stream and supplies |
168 * binary data in configurable chunk sizes. | 168 * binary data in configurable chunk sizes. |
169 */ | 169 */ |
170 interface ChunkedInputStream default _ChunkedInputStream { | 170 interface ChunkedInputStream default _ChunkedInputStream { |
171 /** | 171 /** |
172 * Adds buffering to an input stream and provide the ability to read | 172 * Adds buffering to an input stream and provide the ability to read |
(...skipping 22 matching lines...) Expand all Loading... |
195 /** | 195 /** |
196 * Sets the chunk size used by this stream. | 196 * Sets the chunk size used by this stream. |
197 */ | 197 */ |
198 void set chunkSize(int chunkSize); | 198 void set chunkSize(int chunkSize); |
199 | 199 |
200 /** | 200 /** |
201 * Sets the handler that gets called when at least [chunkSize] bytes | 201 * Sets the handler that gets called when at least [chunkSize] bytes |
202 * of data is available or the underlying stream has been closed and | 202 * of data is available or the underlying stream has been closed and |
203 * there is still unread data. | 203 * there is still unread data. |
204 */ | 204 */ |
205 void set dataHandler(void callback()); | 205 void set onData(void callback()); |
206 | 206 |
207 /** | 207 /** |
208 * Sets the handler that gets called when there will be no more data | 208 * Sets the handler that gets called when there will be no more data |
209 * available in the stream. | 209 * available in the stream. |
210 */ | 210 */ |
211 void set closeHandler(void callback()); | 211 void set onClosed(void callback()); |
212 | 212 |
213 /** | 213 /** |
214 * Sets the handler that gets called when the underlying | 214 * Sets the handler that gets called when the underlying |
215 * communication channel gets into some kind of error situation. | 215 * communication channel gets into some kind of error situation. |
216 */ | 216 */ |
217 void set errorHandler(void callback()); | 217 void set onError(void callback()); |
218 } | 218 } |
219 | 219 |
220 | 220 |
221 class StreamException implements Exception { | 221 class StreamException implements Exception { |
222 const StreamException([String this.message = ""]); | 222 const StreamException([String this.message = ""]); |
223 const StreamException.streamClosed() : message = "Stream closed"; | 223 const StreamException.streamClosed() : message = "Stream closed"; |
224 String toString() => "StreamException: $message"; | 224 String toString() => "StreamException: $message"; |
225 final String message; | 225 final String message; |
226 } | 226 } |
OLD | NEW |