26#ifndef MYSQL_HARNESS_DESTINATION_ACCEPTOR_INCLUDED 
   27#define MYSQL_HARNESS_DESTINATION_ACCEPTOR_INCLUDED 
   29#include "harness_export.h" 
   50  bool is_tcp()
 const { 
return std::holds_alternative<TcpType>(acceptor_); }
 
   65      return as_local().bind(ep.
as_local());
 
   68    return as_tcp().bind(ep.
as_tcp());
 
   73      return as_local().listen(backlog);
 
   76    return as_tcp().listen(backlog);
 
   81      return as_local().native_non_blocking(val);
 
   84    return as_tcp().native_non_blocking(val);
 
   89      return as_local().native_handle();
 
   92    return as_tcp().native_handle();
 
   95  template <
typename SettableSocketOption>
 
   97      const SettableSocketOption &option) {
 
   99      return as_local().set_option(option);
 
  102    return as_tcp().set_option(option);
 
  107      return as_local().get_executor();
 
  110    return as_tcp().get_executor();
 
  117      return as_local().cancel();
 
  120    return as_tcp().cancel();
 
  125      return as_local().close();
 
  128    return as_tcp().close();
 
  131  template <
class CompletionToken>
 
  134      return as_local().async_wait(wt, std::forward<CompletionToken>(token));
 
  137    return as_tcp().async_wait(wt, std::forward<CompletionToken>(token));
 
  140  template <
class CompletionToken>
 
  143      return as_local().async_accept(std::forward<CompletionToken>(token));
 
  146    return as_tcp().async_accept(std::forward<CompletionToken>(token));
 
  149  template <
class CompletionToken>
 
  151                    CompletionToken &&token) {
 
  157      return as_local().async_accept(ep.
as_local(),
 
  158                                     std::forward<CompletionToken>(token));
 
  166    return as_tcp().async_accept(ep.
as_tcp(),
 
  167                                 std::forward<CompletionToken>(token));
 
  170  template <
class CompletionToken>
 
  173      return as_local().async_accept(io_ctx,
 
  174                                     std::forward<CompletionToken>(token));
 
  177    return as_tcp().async_accept(io_ctx, std::forward<CompletionToken>(token));
 
net::basic_socket_acceptor< stream_protocol > acceptor
Definition: local.h:305
 
Definition: destination_acceptor.h:40
 
stdx::expected< void, std::error_code > bind(const mysql_harness::DestinationEndpoint &ep)
Definition: destination_acceptor.h:62
 
const LocalType & as_local() const
Definition: destination_acceptor.h:57
 
stdx::expected< void, std::error_code > cancel()
Definition: destination_acceptor.h:115
 
net::io_context & io_context()
Definition: destination_acceptor.h:113
 
LocalType & as_local()
Definition: destination_acceptor.h:56
 
DestinationAcceptor(net::io_context &io_ctx)
Definition: destination_acceptor.h:45
 
bool is_local() const
Definition: destination_acceptor.h:51
 
auto async_accept(CompletionToken &&token)
Definition: destination_acceptor.h:141
 
bool is_tcp() const
Definition: destination_acceptor.h:50
 
stdx::expected< void, std::error_code > set_option(const SettableSocketOption &option)
Definition: destination_acceptor.h:96
 
stdx::expected< void, std::error_code > listen(int backlog)
Definition: destination_acceptor.h:71
 
TcpType & as_tcp()
Definition: destination_acceptor.h:53
 
net::io_context::executor_type get_executor()
Definition: destination_acceptor.h:105
 
const TcpType & as_tcp() const
Definition: destination_acceptor.h:54
 
stdx::expected< void, std::error_code > native_non_blocking(bool val)
Definition: destination_acceptor.h:79
 
std::variant< TcpType, LocalType > acceptor_
Definition: destination_acceptor.h:181
 
void async_accept(net::io_context &io_ctx, CompletionToken &&token)
Definition: destination_acceptor.h:171
 
net::impl::socket::native_handle_type native_handle() const
Definition: destination_acceptor.h:87
 
DestinationAcceptor(LocalType sock)
Definition: destination_acceptor.h:48
 
auto async_wait(net::socket_base::wait_type wt, CompletionToken &&token)
Definition: destination_acceptor.h:132
 
auto async_accept(mysql_harness::DestinationEndpoint &ep, CompletionToken &&token)
Definition: destination_acceptor.h:150
 
stdx::expected< void, std::error_code > close()
Definition: destination_acceptor.h:123
 
DestinationAcceptor(TcpType sock)
Definition: destination_acceptor.h:47
 
Definition: destination_endpoint.h:38
 
TcpType & as_tcp()
Definition: destination_endpoint.h:50
 
bool is_local() const
Definition: destination_endpoint.h:48
 
LocalType & as_local()
Definition: destination_endpoint.h:53
 
bool is_tcp() const
Definition: destination_endpoint.h:47
 
Definition: socket.h:1292
 
Definition: io_context.h:1004
 
Definition: io_context.h:61
 
Definition: internet.h:678
 
basic_socket_acceptor< tcp > acceptor
Definition: internet.h:1160
 
Definition: expected.h:286
 
static MYSQL * sock
Definition: mysqlcheck.cc:57
 
wait_type
Definition: socket_constants.h:86
 
int native_handle_type
Definition: socket_constants.h:51
 
Definition: gcs_xcom_synode.h:64
 
stdx::expected< int, std::error_code > open(const char *fname, int flags, mode_t mode) noexcept
Definition: file_handle.cc:79