Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(84)

Side by Side Diff: runtime/bin/socket_stream.dart

Issue 8933029: Add pipe to input stream (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update comment Created 9 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 class SocketInputStream implements InputStream { 5 class SocketInputStream implements InputStream {
6 SocketInputStream(Socket socket) : _socket = socket; 6 SocketInputStream(Socket socket) : _socket = socket;
7 7
8 List<int> read([int len]) { 8 List<int> read([int len]) {
9 int bytesToRead = available(); 9 int bytesToRead = available();
10 if (bytesToRead == 0) return null; 10 if (bytesToRead == 0) return null;
(...skipping 18 matching lines...) Expand all
29 int readInto(List<int> buffer, int offset, int len) { 29 int readInto(List<int> buffer, int offset, int len) {
30 if (offset === null) offset = 0; 30 if (offset === null) offset = 0;
31 if (len === null) len = buffer.length; 31 if (len === null) len = buffer.length;
32 if (offset < 0) throw new StreamException("Illegal offset $offset"); 32 if (offset < 0) throw new StreamException("Illegal offset $offset");
33 if (len < 0) throw new StreamException("Illegal length $len"); 33 if (len < 0) throw new StreamException("Illegal length $len");
34 return _socket.readList(buffer, offset, len); 34 return _socket.readList(buffer, offset, len);
35 } 35 }
36 36
37 int available() => _socket.available(); 37 int available() => _socket.available();
38 38
39 void pipe(OutputStream output, [bool close = true]) {
40 _pipe(this, output, close: close);
41 }
42
39 void set dataHandler(void callback()) { 43 void set dataHandler(void callback()) {
40 _socket.dataHandler = callback; 44 _socket.dataHandler = callback;
41 } 45 }
42 46
43 void set closeHandler(void callback()) { 47 void set closeHandler(void callback()) {
48 _clientCloseHandler = callback;
44 _socket.closeHandler = callback; 49 _socket.closeHandler = callback;
45 } 50 }
46 51
47 void set errorHandler(void callback()) { 52 void set errorHandler(void callback()) {
48 _socket.errorHandler = callback; 53 _socket.errorHandler = callback;
49 } 54 }
50 55
51 Socket _socket; 56 Socket _socket;
57 Function _clientCloseHandler;
52 } 58 }
53 59
54 60
55 class SocketOutputStream implements OutputStream { 61 class SocketOutputStream implements OutputStream {
56 SocketOutputStream(Socket socket) 62 SocketOutputStream(Socket socket)
57 : _socket = socket, _pendingWrites = new _BufferList(); 63 : _socket = socket, _pendingWrites = new _BufferList();
58 64
59 bool write(List<int> buffer, [bool copyBuffer = true]) { 65 bool write(List<int> buffer, [bool copyBuffer = true]) {
60 return _write(buffer, 0, buffer.length, copyBuffer); 66 return _write(buffer, 0, buffer.length, copyBuffer);
61 } 67 }
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 if (_streamErrorHandler != null) _streamErrorHandler(); 163 if (_streamErrorHandler != null) _streamErrorHandler();
158 } 164 }
159 165
160 Socket _socket; 166 Socket _socket;
161 _BufferList _pendingWrites; 167 _BufferList _pendingWrites;
162 var _noPendingWriteHandler; 168 var _noPendingWriteHandler;
163 var _streamErrorHandler; 169 var _streamErrorHandler;
164 bool _closing = false; 170 bool _closing = false;
165 bool _closed = false; 171 bool _closed = false;
166 } 172 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698