// 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.

module mojo;

import "network/interfaces/net_address.mojom";
import "network/interfaces/tcp_connected_socket.mojom";
import "third_party/mojo/src/mojo/public/interfaces/network/network_error.mojom";

// Represents a TCP server socket listening for incoming requests.
interface TCPServerSocket {
  // Waits for an incoming connection request and hooks up a TCPConnectedSocket
  // for connecting with the remote host. Only one Accept call can be pending
  // at a time.
  //
  // Once a connection has been established (indicated by a successful
  // callback), the TCPConnectedSocket may outlive the TCPServerSocket that
  // created it.
  //
  // On success, the address of the remote host will be provided.
  Accept(handle<data_pipe_consumer> send_stream,
         handle<data_pipe_producer> receive_stream,
         TCPConnectedSocket& client_socket)
      => (NetworkError result, NetAddress? remote_address);
};
