| Index: runtime/bin/socket_stream.dart
|
| diff --git a/runtime/bin/socket_stream.dart b/runtime/bin/socket_stream.dart
|
| index 7bcd72e84700e5ee401fd7ee7025f4b7c2ed02d8..26a3a9410848c83368c72fedc8c639e48883ba63 100644
|
| --- a/runtime/bin/socket_stream.dart
|
| +++ b/runtime/bin/socket_stream.dart
|
| @@ -2,6 +2,46 @@
|
| // for details. All rights reserved. Use of this source code is governed by a
|
| // BSD-style license that can be found in the LICENSE file.
|
|
|
| +class SocketInputStream2 implements InputStream2 {
|
| + SocketInputStream2(Socket socket) {
|
| + _socket = socket;
|
| + }
|
| +
|
| + List<int> read() {
|
| + // Return whatever data is available.
|
| + int available = _socket.available();
|
| + if (available == 0) {
|
| + return null;
|
| + }
|
| + List<int> buffer = new List<int>(available);
|
| + int read = _socket.readList(buffer, 0, available);
|
| + if (read < available) {
|
| + List<int> newBuffer = new List<int>(read);
|
| + newBuffer.copyFrom(buffer, 0, 0, read);
|
| + return newBuffer;
|
| + } else {
|
| + return buffer;
|
| + }
|
| + }
|
| +
|
| + void set dataHandler(void callback()) {
|
| + _socket.setDataHandler(callback);
|
| + }
|
| +
|
| + void set closeHandler(void callback()) {
|
| + _socket.setCloseHandler(callback);
|
| + }
|
| +
|
| + void set errorHandler(void callback(int error)) {
|
| + _socket.setErrorHandler(
|
| + void _() { callback(-1); }
|
| + );
|
| + }
|
| +
|
| + Socket _socket;
|
| +}
|
| +
|
| +
|
| class SocketInputStream implements InputStream {
|
| SocketInputStream(Socket socket) {
|
| _socket = socket;
|
| @@ -154,9 +194,7 @@ class SocketInputStream implements InputStream {
|
| }
|
|
|
| class SocketOutputStream implements OutputStream {
|
| - SocketOutputStream(Socket socket) {
|
| - _socket = socket;
|
| - }
|
| + SocketOutputStream(Socket socket) : _socket = socket;
|
|
|
| bool write(List<int> buffer, int offset, int len, void callback()) {
|
| int bytesWritten = _socket.writeList(buffer, offset, len);
|
|
|