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

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

Issue 9382001: Another attempt at fixing the Socket tests. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 10 months 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
« no previous file with comments | « runtime/bin/socket_impl.dart ('k') | tests/standalone/src/SocketCloseTest.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 SocketInputStream { 5 class _SocketInputStream implements SocketInputStream {
6 _SocketInputStream(Socket socket) : _socket = socket { 6 _SocketInputStream(Socket socket) : _socket = socket {
7 if (_socket._id == -1) _closed = true;
7 _socket.closeHandler = _closeHandler; 8 _socket.closeHandler = _closeHandler;
8 } 9 }
9 10
10 List<int> read([int len]) { 11 List<int> read([int len]) {
11 int bytesToRead = available(); 12 int bytesToRead = available();
12 if (bytesToRead == 0) return null; 13 if (bytesToRead == 0) return null;
13 if (len !== null) { 14 if (len !== null) {
14 if (len <= 0) { 15 if (len <= 0) {
15 throw new StreamException("Illegal length $len"); 16 throw new StreamException("Illegal length $len");
16 } else if (bytesToRead > len) { 17 } else if (bytesToRead > len) {
(...skipping 27 matching lines...) Expand all
44 45
45 int available() => _socket.available(); 46 int available() => _socket.available();
46 47
47 void pipe(OutputStream output, [bool close = true]) { 48 void pipe(OutputStream output, [bool close = true]) {
48 _pipe(this, output, close: close); 49 _pipe(this, output, close: close);
49 } 50 }
50 51
51 void close() { 52 void close() {
52 if (!_closed) { 53 if (!_closed) {
53 _socket.close(); 54 _socket.close();
54 if (_clientCloseHandler !== null) _clientCloseHandler();
55 } 55 }
56 } 56 }
57 57
58 bool get closed() => _closed; 58 bool get closed() => _closed;
59 59
60 void set dataHandler(void callback()) { 60 void set dataHandler(void callback()) {
61 _socket._dataHandler = callback; 61 _socket._dataHandler = callback;
62 } 62 }
63 63
64 void set closeHandler(void callback()) { 64 void set closeHandler(void callback()) {
65 _clientCloseHandler = callback; 65 _clientCloseHandler = callback;
66 _socket._closeHandler = _closeHandler; 66 _socket._closeHandler = _closeHandler;
67 } 67 }
68 68
69 void set errorHandler(void callback()) { 69 void set errorHandler(void callback()) {
70 _socket.errorHandler = callback; 70 _socket.errorHandler = callback;
71 } 71 }
72 72
73 void _closeHandler() { 73 void _closeHandler() {
74 _closed = true; 74 _closed = true;
75 if (_clientCloseHandler !== null) _clientCloseHandler(); 75 if (_clientCloseHandler !== null) {
76 _clientCloseHandler();
77 }
76 } 78 }
77 79
78 Socket _socket; 80 Socket _socket;
79 Function _clientCloseHandler; 81 Function _clientCloseHandler;
80 bool _closed = false; 82 bool _closed = false;
81 } 83 }
82 84
83 85
84 class _SocketOutputStream implements SocketOutputStream { 86 class _SocketOutputStream implements SocketOutputStream {
85 _SocketOutputStream(Socket socket) 87 _SocketOutputStream(Socket socket)
(...skipping 27 matching lines...) Expand all
113 _closed = true; 115 _closed = true;
114 } 116 }
115 117
116 void set noPendingWriteHandler(void callback()) { 118 void set noPendingWriteHandler(void callback()) {
117 _noPendingWriteHandler = callback; 119 _noPendingWriteHandler = callback;
118 if (_noPendingWriteHandler != null) { 120 if (_noPendingWriteHandler != null) {
119 _socket._writeHandler = _writeHandler; 121 _socket._writeHandler = _writeHandler;
120 } 122 }
121 } 123 }
122 124
123 void set closeHandler(void callback()) {
Søren Gjesse 2012/02/10 10:44:33 We still have a closeHandler setter int the Output
124 _socket.closeHandler = callback;
125 }
126
127 void set errorHandler(void callback()) { 125 void set errorHandler(void callback()) {
128 _streamErrorHandler = callback; 126 _streamErrorHandler = callback;
129 if (_streamErrorHandler != null) { 127 if (_streamErrorHandler != null) {
130 _socket.errorHandler = _errorHandler; 128 _socket.errorHandler = _errorHandler;
131 } else { 129 } else {
132 _socket.errorHandler = null; 130 _socket.errorHandler = null;
133 } 131 }
134 } 132 }
135 133
136 bool _write(List<int> buffer, int offset, int len, bool copyBuffer) { 134 bool _write(List<int> buffer, int offset, int len, bool copyBuffer) {
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 if (_streamErrorHandler != null) _streamErrorHandler(); 184 if (_streamErrorHandler != null) _streamErrorHandler();
187 } 185 }
188 186
189 Socket _socket; 187 Socket _socket;
190 _BufferList _pendingWrites; 188 _BufferList _pendingWrites;
191 var _noPendingWriteHandler; 189 var _noPendingWriteHandler;
192 var _streamErrorHandler; 190 var _streamErrorHandler;
193 bool _closing = false; 191 bool _closing = false;
194 bool _closed = false; 192 bool _closed = false;
195 } 193 }
OLDNEW
« no previous file with comments | « runtime/bin/socket_impl.dart ('k') | tests/standalone/src/SocketCloseTest.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698