Index: runtime/bin/input_stream.dart |
diff --git a/runtime/bin/input_stream.dart b/runtime/bin/input_stream.dart |
index 48320138d136e70f4d746a33113404c3bbb1ee70..694cf83edd7e06a31dab67d3faa9abc1cbe5391e 100644 |
--- a/runtime/bin/input_stream.dart |
+++ b/runtime/bin/input_stream.dart |
@@ -10,15 +10,74 @@ |
*/ |
interface InputStream { |
dcarlson
2011/10/17 21:05:20
Is there a reason to not have a way to just regist
Søren Gjesse
2011/10/18 15:23:20
I think it will make sense to have a way of regist
|
/** |
- * Reads [len] bytes into [buffer] buffer starting at [offset] offset. |
- * [callback] callback is invoked on completion unless it is null. |
+ * Reads [len] bytes from the stream. When the bytes have been read the |
+ * specified [callback] is called with the data. |
dcarlson
2011/10/17 21:05:20
Address EOF case.
Søren Gjesse
2011/10/18 15:23:20
The current handling of EOF is that if [len] chara
|
+ void readFully(int len, void callback(List<int> buffer)); |
dcarlson
2011/10/17 21:05:20
Seems like this is the most common case -- perhaps
Søren Gjesse
2011/10/18 15:23:20
I have not tried to split the stream interface and
|
+ |
+ /** |
+ * Reads data from the stream into a buffer until the specified [pattern] |
rchandia
2011/10/17 21:53:46
When I hear pattern I think RegEx'es which is not
Søren Gjesse
2011/10/18 15:23:20
Currently it is simple string matching.
|
+ * occurs. When the pattern occours the specified [callback] is called with |
+ * the data including the pattern. If the pattern is not found before |
+ * [maxLength] bytes have been received the error handler will be called. |
rchandia
2011/10/17 21:53:46
How can errorHandler recover?
Søren Gjesse
2011/10/18 15:23:20
Currently not known.
|
+ */ |
dcarlson
2011/10/17 21:05:20
Also: clarify what happens when you hit EOF prior
Søren Gjesse
2011/10/18 15:23:20
Currently there will be not callback if EOF is hit
|
+ void readUntil(List<int> pattern, |
+ void callback(List<int> buffer), |
+ [int maxLength = -1]); |
+ |
+ /** |
+ * Reads as much data as is available from the stream. If no data is |
+ * available null will be returned and the specified callback will |
+ * be called when data becomes available. |
rchandia
2011/10/17 21:53:46
What happens when readFully() is followed by read(
Søren Gjesse
2011/10/18 15:23:20
It is a problem with these different functions on
|
+ */ |
+ List<int> read(void callback()); |
dcarlson
2011/10/17 21:05:20
make callback optional named param?
Søren Gjesse
2011/10/18 15:23:20
Removed the callback in favor the dataHandler.
|
+ |
+ /** |
+ * Close the stream. This will normally also close the underlying |
rchandia
2011/10/17 21:53:46
Does this prevent further reads?
Søren Gjesse
2011/10/18 15:23:20
We should make it possible to read all data after
|
+ * communication channel. |
+ */ |
+ void close(); |
+ |
+ /** |
+ * The close handler gets called when the underlying communication |
+ * channel gets closed. Not all types of communication channels will |
+ * emit close events. |
+ */ |
+ void set closeHandler(void callback()); |
+ |
+ /** |
+ * The error handler gets called when the underlying communication |
+ * channel gets into some kind of error situation. |
+ */ |
+ void set errorHandler(void callback(StreamError error)); |
+} |
+ |
+interface StringInputStream extends InputStream { |
+ /** |
+ * Reads [len] characters from the stream. When the bytes have been read the |
+ * specified [callback] is called with the data. |
+ void readFully(int len, void callback(String data)); |
+ |
+ /** |
+ * Reads string data from the stream into a until the specified [pattern] |
+ * occurs. When the pattern occours the specified [callback] is called with |
+ * the string data including the pattern. If the pattern is not found before |
+ * [maxLength] characters have been received the error handler will be |
+ * called. |
+ */ |
+ void readUntil(String pattern, |
+ void callback(String data), |
+ [int maxLength = -1]); |
+ |
+ /** |
+ * Reads as many characters as is available from the stream. If no data is |
+ * available null will be returned and the specified callback will |
+ * be called when data becomes available. |
*/ |
- bool read(List<int> buffer, int offset, int len, void callback()); |
+ String read(void callback()); |
dcarlson
2011/10/17 21:05:20
optional param -- see above.
Søren Gjesse
2011/10/18 15:23:20
Removed the callback instead.
|
/** |
- * Reads data from the stream into a buffer until a given [pattern] occurs and |
- * hands that buffer over as an input to the registered [callback]. |
- * The callback is not invoked if a read error occurs. |
+ * Sets the encoding to be used when reading string data to the |
+ * stream. The default encoding is UTF-8. |
*/ |
- void readUntil(List<int> pattern, void callback(List<int> buffer)); |
+ void set encoding(String encoding); |
dcarlson
2011/10/17 21:05:20
getter?
Søren Gjesse
2011/10/18 15:23:20
Only getter now - removed setter.
|
} |