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

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

Issue 925403002: Add the shared flag to HttpServer as well (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 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
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 205 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 * version 6 only. 216 * version 6 only.
217 * 217 *
218 * If [port] has the value [:0:] an ephemeral port will 218 * If [port] has the value [:0:] an ephemeral port will
219 * be chosen by the system. The actual port used can be retrieved 219 * be chosen by the system. The actual port used can be retrieved
220 * using the [:port:] getter. 220 * using the [:port:] getter.
221 * 221 *
222 * The optional argument [backlog] can be used to specify the listen 222 * The optional argument [backlog] can be used to specify the listen
223 * backlog for the underlying OS listen setup. If [backlog] has the 223 * backlog for the underlying OS listen setup. If [backlog] has the
224 * value of [:0:] (the default) a reasonable value will be chosen by 224 * value of [:0:] (the default) a reasonable value will be chosen by
225 * the system. 225 * the system.
226 *
227 * The optional argument [shared] specify whether additional binds
228 * to the same `address`, `port` and `v6Only` combination is
229 * possible from the same Dart process. If `shared` is `true` and
230 * additional binds are preformed, then the incoming (accepted)
kustermann 2015/02/17 11:30:56 preformed -> performed
Søren Gjesse 2015/02/17 12:53:11 Done.
231 * connections will be distributed between that set
232 * `RawServerSocket`s. One way of using this is to have number of
233 * isolates between which incoming connections are distributed.
226 */ 234 */
227 external static Future<RawServerSocket> bind(address, 235 external static Future<RawServerSocket> bind(address,
228 int port, 236 int port,
229 {int backlog: 0, 237 {int backlog: 0,
230 bool v6Only: false, 238 bool v6Only: false,
231 bool shared: false}); 239 bool shared: false});
232 240
233 /** 241 /**
234 * Returns the port used by this socket. 242 * Returns the port used by this socket.
235 */ 243 */
236 int get port; 244 int get port;
237 245
238 /** 246 /**
239 * Returns the address used by this socket. 247 * Returns the address used by this socket.
240 */ 248 */
241 InternetAddress get address; 249 InternetAddress get address;
242 250
243 /** 251 /**
244 * Closes the socket. The returned future completes when the socket 252 * Closes the socket. The returned future completes when the socket
245 * is fully closed and is no longer bound. 253 * is fully closed and is no longer bound.
246 */ 254 */
247 Future<RawServerSocket> close(); 255 Future<RawServerSocket> close();
248 256
249 /** 257 /**
250 * Get the [RawServerSocketReference]. 258 * Get the [RawServerSocketReference].
251 * 259 *
252 * WARNING: This feature is *highly experimental* and currently only works on 260 * WARNING: This feature is *highly experimental* and currently only
253 * Linux. The API is most likely going to change in the near future. 261 * works on Linux. The API will be removed in Dart 1.10. Use the
262 * `shared` optional argument on the `bind` method instead.
254 * 263 *
255 * The returned [RawServerSocketReference] can be used to create other 264 * The returned [RawServerSocketReference] can be used to create other
256 * [RawServerSocket]s listening on the same port, 265 * [RawServerSocket]s listening on the same port,
257 * using [RawServerSocketReference.create]. 266 * using [RawServerSocketReference.create].
258 * Incoming connections on the port will be distributed fairly between the 267 * Incoming connections on the port will be distributed fairly between the
259 * active server sockets. 268 * active server sockets.
260 * The [RawServerSocketReference] can be distributed to other isolates through 269 * The [RawServerSocketReference] can be distributed to other isolates through
261 * a [RawSendPort]. 270 * a [RawSendPort].
262 */ 271 */
272
273 @Deprecated('This will be removed in Dart 1.10. '
274 'Use the `shared` optional argument on the `bind` method instead.' )
kustermann 2015/02/17 11:30:56 long line.
Søren Gjesse 2015/02/17 12:53:11 Done.
263 RawServerSocketReference get reference; 275 RawServerSocketReference get reference;
264 } 276 }
265 277
266 278
267 /** 279 /**
268 * A [RawServerSocketReference]. 280 * A [RawServerSocketReference].
269 * 281 *
270 * WARNING: This class is used with [RawServerSocket.reference] which is highly 282 * WARNING: This class is used with [RawServerSocket.reference] which is highly
271 * experimental. 283 * experimental.
272 */ 284 */
285 @Deprecated('This will be removed in Dart 1.10.')
273 abstract class RawServerSocketReference { 286 abstract class RawServerSocketReference {
274 /** 287 /**
275 * Create a new [RawServerSocket], from this reference. 288 * Create a new [RawServerSocket], from this reference.
276 */ 289 */
277 Future<RawServerSocket> create(); 290 Future<RawServerSocket> create();
278 } 291 }
279 292
280 293
281 /** 294 /**
282 * A [ServerSocket] represents a listening socket, and provides a 295 * A [ServerSocket] represents a listening socket, and provides a
(...skipping 25 matching lines...) Expand all
308 * version 6 only. 321 * version 6 only.
309 * 322 *
310 * If [port] has the value [:0:] an ephemeral port will be chosen by 323 * If [port] has the value [:0:] an ephemeral port will be chosen by
311 * the system. The actual port used can be retrieved using the 324 * the system. The actual port used can be retrieved using the
312 * [port] getter. 325 * [port] getter.
313 * 326 *
314 * The optional argument [backlog] can be used to specify the listen 327 * The optional argument [backlog] can be used to specify the listen
315 * backlog for the underlying OS listen setup. If [backlog] has the 328 * backlog for the underlying OS listen setup. If [backlog] has the
316 * value of [:0:] (the default) a reasonable value will be chosen by 329 * value of [:0:] (the default) a reasonable value will be chosen by
317 * the system. 330 * the system.
331 *
332 * The optional argument [shared] specify whether additional binds
333 * to the same `address`, `port` and `v6Only` combination is
334 * possible from the same Dart process. If `shared` is `true` and
335 * additional binds are preformed, then the incoming (incoming)
kustermann 2015/02/17 11:30:56 ditto
Søren Gjesse 2015/02/17 12:53:11 Done.
336 * connections will be distributed between that set
337 * `ServerSocket`s. One way of using this is to have number of
338 * isolates between which incoming connections are distributed.
318 */ 339 */
319 external static Future<ServerSocket> bind(address, 340 external static Future<ServerSocket> bind(address,
320 int port, 341 int port,
321 {int backlog: 0, 342 {int backlog: 0,
322 bool v6Only: false, 343 bool v6Only: false,
323 bool shared: false}); 344 bool shared: false});
324 345
325 /** 346 /**
326 * Returns the port used by this socket. 347 * Returns the port used by this socket.
327 */ 348 */
328 int get port; 349 int get port;
329 350
330 /** 351 /**
331 * Returns the address used by this socket. 352 * Returns the address used by this socket.
332 */ 353 */
333 InternetAddress get address; 354 InternetAddress get address;
334 355
335 /** 356 /**
336 * Closes the socket. The returned future completes when the socket 357 * Closes the socket. The returned future completes when the socket
337 * is fully closed and is no longer bound. 358 * is fully closed and is no longer bound.
338 */ 359 */
339 Future<ServerSocket> close(); 360 Future<ServerSocket> close();
340 361
341 /** 362 /**
342 * Get the [ServerSocketReference]. 363 * Get the [ServerSocketReference].
343 * 364 *
344 * WARNING: This feature is *highly experimental* and currently only works on 365 * WARNING: This feature is *highly experimental* and currently only
345 * Linux. The API is most likely going to change in the near future. 366 * works on Linux. The API will be removed in Dart 1.10. Use the
367 * `shared` optional argument on the `bind` method instead.
346 * 368 *
347 * The returned [ServerSocketReference] can be used to create other 369 * The returned [ServerSocketReference] can be used to create other
348 * [ServerSocket]s listening on the same port, 370 * [ServerSocket]s listening on the same port,
349 * using [ServerSocketReference.create]. 371 * using [ServerSocketReference.create].
350 * Incoming connections on the port will be distributed fairly between the 372 * Incoming connections on the port will be distributed fairly between the
351 * active server sockets. 373 * active server sockets.
352 * The [ServerSocketReference] can be distributed to other isolates through a 374 * The [ServerSocketReference] can be distributed to other isolates through a
353 * [SendPort]. 375 * [SendPort].
354 */ 376 */
377 @Deprecated('This will be removed in Dart 1.10. '
378 'Use the `shared` optional argument on the `bind` method instead.' )
kustermann 2015/02/17 11:30:56 long line
Søren Gjesse 2015/02/17 12:53:11 Done.
355 ServerSocketReference get reference; 379 ServerSocketReference get reference;
356 } 380 }
357 381
358 382
359 /** 383 /**
360 * A [ServerSocketReference]. 384 * A [ServerSocketReference].
361 * 385 *
362 * WARNING: This class is used with [ServerSocket.reference] which is highly 386 * WARNING: This class is used with [ServerSocket.reference] which is highly
363 * experimental. 387 * experimental.
364 */ 388 */
389 @Deprecated('This will be removed in Dart 1.10.')
365 abstract class ServerSocketReference { 390 abstract class ServerSocketReference {
366 /** 391 /**
367 * Create a new [ServerSocket], from this reference. 392 * Create a new [ServerSocket], from this reference.
368 */ 393 */
369 Future<ServerSocket> create(); 394 Future<ServerSocket> create();
370 } 395 }
371 396
372 397
373 /** 398 /**
374 * The [SocketDirection] is used as a parameter to [Socket.close] and 399 * The [SocketDirection] is used as a parameter to [Socket.close] and
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 } 777 }
753 if (address != null) { 778 if (address != null) {
754 sb.write(", address = ${address.host}"); 779 sb.write(", address = ${address.host}");
755 } 780 }
756 if (port != null) { 781 if (port != null) {
757 sb.write(", port = $port"); 782 sb.write(", port = $port");
758 } 783 }
759 return sb.toString(); 784 return sb.toString();
760 } 785 }
761 } 786 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698