Index: runtime/bin/input_stream.dart |
diff --git a/runtime/bin/input_stream.dart b/runtime/bin/input_stream.dart |
index e9f496b66b2c0b847f153ce8d5eb40ea29d257cc..36bd40eb7a12e2f7495e9327831082f2bee92c9c 100644 |
--- a/runtime/bin/input_stream.dart |
+++ b/runtime/bin/input_stream.dart |
@@ -3,90 +3,84 @@ |
// BSD-style license that can be found in the LICENSE file. |
/** |
- * Input is read from a given input stream. Such an input stream can |
- * be an endpoint, e.g., a socket or a file, or another input stream. |
- * Multiple input streams can be chained together to operate collaboratively |
- * on a given input. |
+ * An input stream is used to read data sequentially from a data source. |
*/ |
interface InputStream { |
/** |
- * Reads data from the stream. Returns a system allocated buffer |
- * with up to [len] bytes. If no value is passed for [len] all |
- * available data will be returned. If no data is available null will |
- * be returned. |
+ * Reads data from the stream. If no encoding is set fir the stream |
Mads Ager (google)
2011/11/30 10:44:07
fir -> for
|
+ * it returns a system allocated buffer with up to [len] bytes. If |
+ * encoding is set it returns a [String] with up to [len] |
+ * characters. If no value is passed for [len] all available data |
+ * will be returned. If no data is available null will be returned. |
*/ |
- List<int> read([int len]); |
+ Object read([int len]); |
+ |
+ /** |
+ * Reads a line of characters from the stream. If a full line is not |
+ * available the return value is null. If no encoding is set for the |
+ * stream an exception is thrown. |
+ */ |
+ String readLine(); |
/** |
* Reads up to [len] bytes into buffer [buffer] starting at offset |
* [offset]. Returns the number of bytes actually read which might |
* be zero. If [offset] is not specified 0 is used. If [len] is not |
- * specified the length of [buffer] is used. |
+ * specified the length of [buffer] is used. If an encoding is set |
+ * for the stream an exception is thrown. |
*/ |
int readInto(List<int> buffer, [int offset, int len]); |
/** |
- * Returns the number of bytes available for immediate reading. |
- */ |
- int available(); |
- |
- /** |
- * Returns whether the stream is closed. There will be no more data |
- * to read. |
+ * Reads data from the stream until the pattern [pattern] is |
+ * encountered. |
*/ |
- bool get closed(); |
+ Object readUntil(Object pattern); |
Mads Ager (google)
2011/11/30 10:44:07
Should pattern have type Pattern?
|
/** |
- * Sets the handler that gets called when data is available. |
+ * Pipe the data from this input stream directly to the |
+ * [destination] [OutputStream]. After the input stream has been |
+ * connected to an output stream data cannot be read from it |
+ * anymore. When there is no more data in the input stream [close] |
+ * will be called on the connected output stream. |
*/ |
- void set dataHandler(void callback()); |
+ void pipe(OutputStream destination); |
/** |
- * Sets the handler that gets called when there will be no more data |
- * available in the stream. |
- */ |
- void set closeHandler(void callback()); |
- |
- /** |
- * Sets the handler that gets called when the underlying |
- * communication channel gets into some kind of error situation. |
+ * Returns the number of bytes available for immediate reading. |
Mads Ager (google)
2011/11/30 10:44:07
Hmm, bytes or characters depending on the encoding
|
*/ |
- void set errorHandler(void callback()); |
-} |
- |
+ int available(); |
-interface StringInputStream factory _StringInputStream { |
/** |
- * Decodes a binary input stream into characters using the specified |
- * encoding. |
+ * Sets the encoding used by the stream for turning bytes into |
+ * characters. If encoding is set then calling the [read] method |
+ * will return a [String] instead of a [List] of bytes. Currently |
+ * the encodings "UTF-8", "ISO-8859-1" and "ASCII" are supported. |
Mads Ager (google)
2011/11/30 10:44:07
Maybe there should always be an encoding? A defaul
|
*/ |
- StringInputStream(InputStream input, [String encoding]); |
+ void set encoding(String encoding); |
+ String get encoding(); |
/** |
- * Reads as many characters as is available from the stream. If no data is |
- * available null will be returned. |
+ * Sets the minimum number of bytes required to trigger a the |
Mads Ager (google)
2011/11/30 10:44:07
Again, is this bytes or characters depending on th
|
+ * [dataHandler] ... |
*/ |
- String read(); |
+ void set chunkSize(int chunkSize); |
+ int get chunkSize(); |
/** |
- * Reads the next line from the stream. The line ending characters |
- * will not be part og the returned string. If a full line is not |
- * available null will be returned. |
+ * Sets the data pattern to expect before triggering the |
+ * [dataHandler] ... |
*/ |
- String readLine(); |
+ void set dataPattern(Object pattern); |
+ get dataPattern(); |
/** |
- * Returns whether the stream has been closed. There might still be |
- * more data to read. |
+ * Returns whether the stream is closed. There will be no more data |
+ * to read. |
*/ |
bool get closed(); |
/** |
- * Returns the encoding used to decode the binary data into characters. |
- */ |
- String get encoding(); |
- |
- /** |
* Sets the handler that gets called when data is available. |
*/ |
void set dataHandler(void callback()); |