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

Side by Side Diff: sdk/lib/io/socket.dart

Issue 14864009: Keep track of when a socket has been destroyed (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 7 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 part of dart.io; 5 part of dart.io;
6 6
7 7
8 /** 8 /**
9 * [InternetAddressType] is the type an [InternetAddress]. Currently, 9 * [InternetAddressType] is the type an [InternetAddress]. Currently,
10 * IP version 4 (IPv4) and IP version 6 (IPv6) are supported. 10 * IP version 4 (IPv4) and IP version 6 (IPv6) are supported.
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 int port, 196 int port,
197 {int backlog: 0, 197 {int backlog: 0,
198 bool v6Only: false}); 198 bool v6Only: false});
199 199
200 /** 200 /**
201 * Returns the port used by this socket. 201 * Returns the port used by this socket.
202 */ 202 */
203 int get port; 203 int get port;
204 204
205 /** 205 /**
206 * Closes the socket. 206 * Closes the socket. The returned future completes when the socket
207 * is fully closed and is no longer bound.
207 */ 208 */
208 void close(); 209 Future close();
209 } 210 }
210 211
211 /** 212 /**
212 * The [SocketDirection] is used as a parameter to [Socket.close] and 213 * The [SocketDirection] is used as a parameter to [Socket.close] and
213 * [RawSocket.close] to close a socket in the specified direction(s). 214 * [RawSocket.close] to close a socket in the specified direction(s).
214 */ 215 */
215 class SocketDirection { 216 class SocketDirection {
216 static const SocketDirection RECEIVE = const SocketDirection._(0); 217 static const SocketDirection RECEIVE = const SocketDirection._(0);
217 static const SocketDirection SEND = const SocketDirection._(1); 218 static const SocketDirection SEND = const SocketDirection._(1);
218 static const SocketDirection BOTH = const SocketDirection._(2); 219 static const SocketDirection BOTH = const SocketDirection._(2);
(...skipping 20 matching lines...) Expand all
239 final _value; 240 final _value;
240 } 241 }
241 242
242 /** 243 /**
243 * Events for the [RawSocket]. 244 * Events for the [RawSocket].
244 */ 245 */
245 class RawSocketEvent { 246 class RawSocketEvent {
246 static const RawSocketEvent READ = const RawSocketEvent._(0); 247 static const RawSocketEvent READ = const RawSocketEvent._(0);
247 static const RawSocketEvent WRITE = const RawSocketEvent._(1); 248 static const RawSocketEvent WRITE = const RawSocketEvent._(1);
248 static const RawSocketEvent READ_CLOSED = const RawSocketEvent._(2); 249 static const RawSocketEvent READ_CLOSED = const RawSocketEvent._(2);
250 static const RawSocketEvent CLOSED = const RawSocketEvent._(3);
249 const RawSocketEvent._(this._value); 251 const RawSocketEvent._(this._value);
250 final int _value; 252 final int _value;
251 String toString() { 253 String toString() {
252 return ['RawSocketEvent:READ', 254 return ['RawSocketEvent:READ',
253 'RawSocketEvent:WRITE', 255 'RawSocketEvent:WRITE',
254 'RawSocketEvent:READ_CLOSED'][_value]; 256 'RawSocketEvent:READ_CLOSED',
257 'RawSocketEvent:CLOSED'][_value];
255 } 258 }
256 } 259 }
257 260
258 /** 261 /**
259 * The [RawSocket] is a low-level interface to a socket, exposing the raw 262 * The [RawSocket] is a low-level interface to a socket, exposing the raw
260 * events signaled by the system. It's a [Stream] of [RawSocketEvent]s. 263 * events signaled by the system. It's a [Stream] of [RawSocketEvent]s.
261 */ 264 */
262 abstract class RawSocket implements Stream<RawSocketEvent> { 265 abstract class RawSocket implements Stream<RawSocketEvent> {
263 /** 266 /**
264 * Creates a new socket connection to the host and port and returns a [Future] 267 * Creates a new socket connection to the host and port and returns a [Future]
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 sb.write(" ($osError)"); 424 sb.write(" ($osError)");
422 } 425 }
423 } else if (osError != null) { 426 } else if (osError != null) {
424 sb.write(": $osError"); 427 sb.write(": $osError");
425 } 428 }
426 return sb.toString(); 429 return sb.toString();
427 } 430 }
428 final String message; 431 final String message;
429 final OSError osError; 432 final OSError osError;
430 } 433 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698