| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| [DartPackage="mojo_services"] |
| module mojo; |
| |
| import "mojo/public/interfaces/network/network_error.mojom"; |
| import "network/interfaces/net_address.mojom"; |
| import "network/interfaces/tcp_connected_socket.mojom"; |
| import "network/interfaces/tcp_server_socket.mojom"; |
| |
| // Represents a TCP socket that is bound to a local address and port, but |
| // is not yet in a listening or connected state. |
| // |
| // A bound socket can be used to create a server socket listening on the |
| // local address, or it can be used to create a client socket by connecting to |
| // a remote host. Once StartListening or Connect is called on the bound socket, |
| // ownership of the underlying socket will be transferred to the connected or |
| // server socket, and the bound socket may be closed. |
| interface TCPBoundSocket { |
| // Puts the socket into server mode, awaiting incoming connections. |
| // |
| // Once this function is called, neither StartListening nor Connect can be |
| // used on this socket again. |
| StartListening(TCPServerSocket& server) => (NetworkError result); |
| |
| // Puts this socket into client mode by connecting to a remote host. If you |
| // do not care about the local address or port, you can call |
| // NetworkService.CreateTCPConnectedSocket to connect directly and skip the |
| // "bound" state. |
| // |
| // Once this function is called, neither StartListening nor Connect can be |
| // used on this socket again. |
| Connect(NetAddress remote_address, |
| handle<data_pipe_consumer> send_stream, |
| handle<data_pipe_producer> receive_stream, |
| TCPConnectedSocket& client_socket) |
| => (NetworkError result); |
| }; |