| Index: runtime/bin/input_stream.dart
|
| diff --git a/runtime/bin/input_stream.dart b/runtime/bin/input_stream.dart
|
| index 48320138d136e70f4d746a33113404c3bbb1ee70..e7394aa44b252201867e61098e89dae683e73297 100644
|
| --- a/runtime/bin/input_stream.dart
|
| +++ b/runtime/bin/input_stream.dart
|
| @@ -10,15 +10,105 @@
|
| */
|
| interface InputStream {
|
| /**
|
| - * Reads [len] bytes into [buffer] buffer starting at [offset] offset.
|
| - * [callback] callback is invoked on completion unless it is null.
|
| + * 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.
|
| */
|
| - bool read(List<int> buffer, int offset, int len, void callback());
|
| + List<int> read([int len]);
|
|
|
| /**
|
| - * 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.
|
| + * 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.
|
| */
|
| - void readUntil(List<int> pattern, void callback(List<int> buffer));
|
| + int readInto(List<int> buffer, [int offset, int len]);
|
| +
|
| + /**
|
| + * Returns the number of bytes available for immediate reading.
|
| + */
|
| + int available();
|
| +
|
| + /**
|
| + * Returns whether the stream has been closed. There might still be
|
| + * more data to read.
|
| + */
|
| + bool closed();
|
| +
|
| + /**
|
| + * Sets the data which handler gets called when data is available.
|
| + */
|
| + void set dataHandler(void callback());
|
| +
|
| + /**
|
| + * The close handler gets called when the underlying communication
|
| + * channel is closed and no more data will become available. 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());
|
| +}
|
| +
|
| +
|
| +interface StringInputStream factory _StringInputStream {
|
| + /**
|
| + * Decodes a binary input stream into characters using the specified
|
| + * encoding.
|
| + */
|
| + StringInputStream(InputStream input, [String encoding]);
|
| +
|
| + /**
|
| + * Reads as many characters as is available from the stream. If no data is
|
| + * available null will be returned.
|
| + */
|
| + String read();
|
| +
|
| + /**
|
| + * 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.
|
| + */
|
| + String readLine();
|
| +
|
| + /**
|
| + * Returns whether the stream has been closed. There might still be
|
| + * more data to read.
|
| + */
|
| + bool get closed();
|
| +
|
| + /**
|
| + * Returns the encoding used to decode the binary data into characters.
|
| + */
|
| + String get encoding();
|
| +
|
| + /**
|
| + * The data handler gets called when data is available.
|
| + */
|
| + void set dataHandler(void callback());
|
| +
|
| + /**
|
| + * The close handler gets called when the underlying communication
|
| + * channel is closed and no more data will become available. 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());
|
| +}
|
| +
|
| +
|
| +class StreamException implements Exception {
|
| + const StreamException([String this.message = ""]);
|
| + String toString() => "StreamException: $message";
|
| + final String message;
|
| }
|
|
|