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

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

Issue 10938010: Switch from interfaces to abstract classes in dart:io. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 3 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) 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 interface ServerSocket default _ServerSocket { 5 abstract class ServerSocket {
6 /** 6 /**
7 * Constructs a new server socket, binds it to a given address and port, 7 * Constructs a new server socket, binds it to a given address and port,
8 * and listens on it. 8 * and listens on it.
9 */ 9 */
10 ServerSocket(String bindAddress, int port, int backlog); 10 factory ServerSocket(String bindAddress, int port, int backlog) {
11 return new _ServerSocket(bindAddress, port, backlog);
12 }
11 13
12 /** 14 /**
13 * The connection handler gets called when there is a new incoming 15 * The connection handler gets called when there is a new incoming
14 * connection on the socket. 16 * connection on the socket.
15 */ 17 */
16 void set onConnection(void callback(Socket connection)); 18 void set onConnection(void callback(Socket connection));
17 19
18 /** 20 /**
19 * The error handler gets called when a socket error occurs. 21 * The error handler gets called when a socket error occurs.
20 */ 22 */
21 void set onError(void callback(e)); 23 void set onError(void callback(e));
22 24
23 /** 25 /**
24 * Returns the port used by this socket. 26 * Returns the port used by this socket.
25 */ 27 */
26 int get port; 28 int get port;
27 29
28 /** 30 /**
29 * Closes the socket. 31 * Closes the socket.
30 */ 32 */
31 void close(); 33 void close();
32 } 34 }
33 35
34 36
35 interface Socket extends Hashable default _Socket { 37 abstract class Socket implements Hashable {
36 /** 38 /**
37 * Constructs a new socket and initiate connecting it to the given 39 * Constructs a new socket and initiate connecting it to the given
38 * host on the given port. The returned socket is not yet connected 40 * host on the given port. The returned socket is not yet connected
39 * but ready for registration of callbacks. 41 * but ready for registration of callbacks.
40 */ 42 */
41 Socket(String host, int port); 43 factory Socket(String host, int port) => new _Socket(host, port);
42 44
43 /** 45 /**
44 * Returns the number of received and non-read bytes in the socket that 46 * Returns the number of received and non-read bytes in the socket that
45 * can be read. 47 * can be read.
46 */ 48 */
47 int available(); 49 int available();
48 50
49 /** 51 /**
50 * Reads up to [count] bytes of data from the socket and stores them into 52 * Reads up to [count] bytes of data from the socket and stores them into
51 * buffer after buffer offset [offset]. The number of successfully read 53 * buffer after buffer offset [offset]. The number of successfully read
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 */ 120 */
119 String get remoteHost; 121 String get remoteHost;
120 122
121 /** 123 /**
122 * Closes the socket. Calling [close] will never throw an exception 124 * Closes the socket. Calling [close] will never throw an exception
123 * and calling it several times is supported. If [halfClose] is true 125 * and calling it several times is supported. If [halfClose] is true
124 * the socket will only be closed for writing and it might still be 126 * the socket will only be closed for writing and it might still be
125 * possible to read data. Calling [close] will not trigger a call to 127 * possible to read data. Calling [close] will not trigger a call to
126 * [onClosed]. 128 * [onClosed].
127 */ 129 */
128 void close([bool halfClose]); 130 void close([bool halfClose = false]);
129 131
130 /** 132 /**
131 * Socket is hashable. 133 * Socket is hashable.
132 */ 134 */
133 int hashCode(); 135 int hashCode();
134 } 136 }
135 137
136 138
137 class SocketIOException implements Exception { 139 class SocketIOException implements Exception {
138 const SocketIOException([String this.message = "", 140 const SocketIOException([String this.message = "",
139 OSError this.osError = null]); 141 OSError this.osError = null]);
140 String toString() { 142 String toString() {
141 StringBuffer sb = new StringBuffer(); 143 StringBuffer sb = new StringBuffer();
142 sb.add("SocketIOException"); 144 sb.add("SocketIOException");
143 if (!message.isEmpty()) { 145 if (!message.isEmpty()) {
144 sb.add(": $message"); 146 sb.add(": $message");
145 if (osError != null) { 147 if (osError != null) {
146 sb.add(" ($osError)"); 148 sb.add(" ($osError)");
147 } 149 }
148 } else if (osError != null) { 150 } else if (osError != null) {
149 sb.add(": $osError"); 151 sb.add(": $osError");
150 } 152 }
151 return sb.toString(); 153 return sb.toString();
152 } 154 }
153 final String message; 155 final String message;
154 final OSError osError; 156 final OSError osError;
155 } 157 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698