This commit is contained in:
Timur A. Fatkhullin
2024-11-24 00:00:22 +03:00
parent 4fd0550de3
commit ecca565f3f
4 changed files with 21 additions and 204 deletions

View File

@@ -6,6 +6,7 @@
#include <asio/basic_stream_socket.hpp>
#include <asio/bind_executor.hpp>
#include <asio/compose.hpp>
#include <asio/connect.hpp>
#include <asio/deferred.hpp>
#include <asio/ip/tcp.hpp>
#include <asio/ip/udp.hpp>
@@ -124,6 +125,10 @@ public:
static constexpr bool isTLS = false;
#endif
typedef TRANSPORT_PROTOT transport_proto_t;
typedef SESSION_PROTOT session_proto_t;
typedef RMSGT receive_msg_t;
// typedefs to satisfy 'adc_netservice_c' concept
typedef std::string_view netservice_ident_t;
@@ -793,6 +798,17 @@ public:
return s;
}
template <std::derived_from<AdcBaseNetServiceASIO> ST,
typename EptRangeT,
asio::completion_token_for<std::error_code, endpoint_t> CallbackT>
friend auto async_connect(ST& service, const EptRangeT& ept_range, CallbackT&& token)
requires std::ranges::range<EptRangeT> &&
std::same_as<std::ranges::range_value_t<EptRangeT>, AdcBaseNetServiceASIO::endpoint_t>
{
return asio::async_connect(service._socket, ept_range, token);
};
protected:
static constexpr netservice_ident_t _ident =
std::derived_from<socket_t, asio::basic_stream_socket<typename socket_t::protocol_type>>
@@ -931,7 +947,8 @@ protected:
/* */
/* PARTIAL AdcBaseNetServiceASIO-CLASS SPECIALIZATIONS */
template <
adc_asio_transport_proto_c TRANSPORT_PROTOT, // transport-level proto (e.g. asio::ip::tcp)
interfaces::adc_netsession_proto_c<std::string_view> SESSION_PROTOT, // session-level proto (see ../adc_netproto.h)