1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
7 import "network/public/interfaces/net_address.mojom";
8 import "network/public/interfaces/network_error.mojom";
9 import "network/public/interfaces/tcp_connected_socket.mojom";
10 import "network/public/interfaces/tcp_server_socket.mojom";
12 // Represents a TCP socket that is bound to a local address and port, but
13 // is not yet in a listening or connected state.
15 // A bound socket can be used to create a server socket listening on the
16 // local address, or it can be used to create a client socket by connecting to
17 // a remote host. Once StartListening or Connect is called on the bound socket,
18 // ownership of the underlying socket will be transferred to the connected or
19 // server socket, and the bound socket may be closed.
20 interface TCPBoundSocket {
21 // Puts the socket into server mode, awaiting incoming connections.
23 // Once this function is called, neither StartListening nor Connect can be
24 // used on this socket again.
25 StartListening(TCPServerSocket& server) => (NetworkError result);
27 // Puts this socket into client mode by connecting to a remote host. If you
28 // do not care about the local address or port, you can call
29 // NetworkService.CreateTCPConnectedSocket to connect directly and skip the
32 // Once this function is called, neither StartListening nor Connect can be
33 // used on this socket again.
34 Connect(NetAddress remote_address,
35 handle<data_pipe_consumer> send_stream,
36 handle<data_pipe_producer> receive_stream,
37 TCPConnectedSocket& client_socket)
38 => (NetworkError result);