start rewriting ASIO-related network service implementation

This commit is contained in:
Timur A. Fatkhullin
2024-09-16 23:28:18 +03:00
parent d33c101d70
commit 52de9a861b
3 changed files with 67 additions and 39 deletions

View File

@@ -50,20 +50,20 @@ using adc_common_duration_t = adc_duration_common_type_t<std::chrono::nanosecond
/*
struct NetService {
typedef ImplementationDependentT netservice_ident_t;
typedef ImplementationDependentT async_ctx_t;
typedef ImplementationDependentT async_call_ctx_t;
typedef ImplementationDependentT endpoint_t;
template<typename Rep, typename Period>
auto asyncAccept(const endpoint_t&, async_ctx_t&, const std::chrono::duration<Rep, Period>&)
auto asyncAccept(const endpoint_t&, async_call_ctx_t&, const std::chrono::duration<Rep, Period>&)
template<typename Rep, typename Period>
auto asyncConnect(const endpoint_t&, async_ctx_t&, const std::chrono::duration<Rep, Period>&)
auto asyncConnect(const endpoint_t&, async_call_ctx_t&, const std::chrono::duration<Rep, Period>&)
template<typename Rep, typename Period, adc::traits::adc_input_char_range R>
auto asyncSend(const R&, async_ctx_t&, const std::chrono::duration<Rep, Period>&)
auto asyncSend(const R&, async_call_ctx_t&, const std::chrono::duration<Rep, Period>&)
template<typename Rep, typename Period>
auto asyncReceived(async_ctx_t&, const std::chrono::duration<Rep, Period>&)
auto asyncReceived(async_call_ctx_t&, const std::chrono::duration<Rep, Period>&)
template<typename Rep, typename Period>
auto accept(const endpoint_t&, const std::chrono::duration<Rep, Period>&)
@@ -92,20 +92,20 @@ concept adc_netservice_c =
// netservice_ident_t ident() const
{ srv_const.ident() } -> std::same_as<typename SRVT::netservice_ident_t>;
typename SRVT::async_ctx_t;
typename SRVT::async_call_ctx_t;
typename SRVT::endpoint_t;
// asynchronous (non-blocking) operations
srv.asyncAccept(std::declval<const typename SRVT::endpoint_t&>(), std::declval<typename SRVT::async_ctx_t&>(),
std::declval<const DURT&>());
srv.asyncAccept(std::declval<const typename SRVT::endpoint_t&>(),
std::declval<typename SRVT::async_call_ctx_t&>(), std::declval<const DURT&>());
srv.asyncConnect(std::declval<const typename SRVT::endpoint_t&>(), std::declval<typename SRVT::async_ctx_t&>(),
std::declval<const DURT&>());
srv.asyncConnect(std::declval<const typename SRVT::endpoint_t&>(),
std::declval<typename SRVT::async_call_ctx_t&>(), std::declval<const DURT&>());
srv.asyncSend(std::declval<const SMSGT&>(), std::declval<typename SRVT::async_ctx_t&>(),
srv.asyncSend(std::declval<const SMSGT&>(), std::declval<typename SRVT::async_call_ctx_t&>(),
std::declval<const DURT&>());
srv.asyncReceive(std::declval<typename SRVT::async_ctx_t&>(), std::declval<const DURT&>());
srv.asyncReceive(std::declval<typename SRVT::async_call_ctx_t&>(), std::declval<const DURT&>());
// synchronous (blocking) operations
srv.accept(std::declval<const typename SRVT::endpoint_t&>(), std::declval<const DURT&>());