Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 128 lines (105 sloc) 3.388 kb
99858ed Adam Singer new file: builtin/builtin_runtime.dart
authored
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 interface ServerSocket default _ServerSocket {
6 /*
7 * Constructs a new server socket, binds it to a given address and port,
8 * and listens on it.
9 */
10 ServerSocket(String bindAddress, int port, int backlog);
11
12 /*
13 * The connection handler gets called when there is a new incoming
14 * connection on the socket.
15 */
16 void set connectionHandler(void callback(Socket connection));
17
18 /*
19 * The error handler gets called when a socket error occurs.
20 */
21 void set errorHandler(void callback());
22
23 /*
24 * Returns the port used by this socket.
25 */
26 int get port();
27
28 /*
29 * Closes the socket.
30 */
31 void close();
32 }
33
34
35 interface Socket default _Socket {
36 /*
37 * Constructs a new socket and connects it to the given host on the given
38 * port.
39 */
40 Socket(String host, int port);
41
42 /*
43 * Returns the number of received and non-read bytes in the socket that
44 * can be read.
45 */
46 int available();
47
48 /*
49 * Reads up to [count] bytes of data from the socket and stores them into
50 * buffer after buffer offset [offset]. The number of successfully read
51 * bytes is returned. This function is non-blocking and will only read data
52 * if data is available.
53 */
54 int readList(List<int> buffer, int offset, int count);
55
56 /*
57 * Writes up to [count] bytes of the buffer from [offset] buffer offset to
58 * the socket. The number of successfully written bytes is returned. This
59 * function is non-blocking and will only write data if buffer space is
60 * available in the socket.
61 */
62 int writeList(List<int> buffer, int offset, int count);
63
64 /*
65 * The connect handler gets called when connection to a given host
66 * succeeded.
67 */
68 void set connectHandler(void callback());
69
70 /*
71 * The data handler gets called when data becomes available at the socket.
72 */
73 void set dataHandler(void callback());
74
75 /*
76 * The write handler gets called when the socket becomes available for
77 * writing.
78 */
79 void set writeHandler(void callback());
80
81 /*
82 * The close handler gets called when a the last byte have been read
83 * from a socket. At this point the socket might still be open for
84 * writing for sending more data.
85 */
86 void set closeHandler(void callback());
87
88 /*
89 * The error handler gets called when a socket error occurs.
90 */
91 void set errorHandler(void callback());
92
93 /*
94 * Returns input stream to the socket.
95 */
96 InputStream get inputStream();
97
98 /*
99 * Returns output stream of the socket.
100 */
101 OutputStream get outputStream();
102
103 /*
104 * Returns the port used by this socket.
105 */
106 int get port();
107
108 /*
109 * Closes the socket. Calling [close] will never throw an exception
110 * and calling it several times is supported. If [halfClose] is true
111 * the socket will only be closed for writing and it might still be
112 * possible to read data. Calling [close] will not trigger a call to
113 * the [closeHandler].
114 */
115 void close([bool halfClose]);
116 }
117
118
119 class SocketIOException implements Exception {
120 const SocketIOException([String this.message = ""]);
121 String toString() => "SocketIOException: $message";
122
123 /*
124 * Contains the exception message.
125 */
126 final String message;
127 }
Something went wrong with that request. Please try again.