...
This commit is contained in:
@@ -161,9 +161,11 @@ public:
|
||||
typedef AdcNetServiceASIOBase netservice_t;
|
||||
typedef std::shared_ptr<netservice_t> sptr_netservice_t;
|
||||
|
||||
typedef std::function<void(std::error_code, sptr_netservice_t)> async_accept_callback_t;
|
||||
typedef std::function<void(std::error_code, netservice_t)> async_accept_callback_t;
|
||||
// typedef std::function<void(std::error_code, sptr_netservice_t)> async_accept_callback_t;
|
||||
|
||||
template <asio::completion_token_for<void(std::error_code, sptr_netservice_t)> TokenT,
|
||||
// template <asio::completion_token_for<void(std::error_code, sptr_netservice_t)> TokenT,
|
||||
template <asio::completion_token_for<void(std::error_code, netservice_t)> TokenT,
|
||||
traits::adc_time_duration_c DT = decltype(DEFAULT_ACCEPT_TIMEOUT)>
|
||||
auto asyncAccept(TokenT&& token, const DT& timeout = DEFAULT_ACCEPT_TIMEOUT)
|
||||
{
|
||||
@@ -175,7 +177,8 @@ public:
|
||||
_socket = AdcNetServiceASIOBase::socket_t{_ioContext};
|
||||
auto timer = getDeadlineTimer(_acceptor, timeout);
|
||||
|
||||
return asio::async_compose<TokenT, void(std::error_code, sptr_netservice_t)>(
|
||||
// return asio::async_compose<TokenT, void(std::error_code, sptr_netservice_t)>(
|
||||
return asio::async_compose<TokenT, void(std::error_code, netservice_t)>(
|
||||
[timer = std::move(timer), start = true, this](auto& self, std::error_code ec = {}) mutable {
|
||||
if (!ec) {
|
||||
if (start) {
|
||||
@@ -186,7 +189,8 @@ public:
|
||||
}
|
||||
} catch (std::system_error err) {
|
||||
timer->cancel();
|
||||
self.complete(err.code(), std::make_shared<netservice_t>(_ioContext));
|
||||
self.complete(err.code(), netservice_t{_ioContext});
|
||||
// self.complete(err.code(), std::make_shared<netservice_t>(_ioContext));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -200,13 +204,13 @@ public:
|
||||
timer->cancel();
|
||||
}
|
||||
|
||||
// self.complete(ec, AdcNetServiceASIOBase(std::move(_socket)));
|
||||
self.complete(ec, std::make_shared<netservice_t>(std::move(_socket)));
|
||||
self.complete(ec, netservice_t(std::move(_socket)));
|
||||
// self.complete(ec, std::make_shared<netservice_t>(std::move(_socket)));
|
||||
},
|
||||
token, _ioContext);
|
||||
}
|
||||
|
||||
template <asio::completion_token_for<void(std::error_code, AdcNetServiceASIOBase)> TokenT,
|
||||
template <asio::completion_token_for<void(std::error_code, netservice_t)> TokenT,
|
||||
traits::adc_time_duration_c DT = decltype(DEFAULT_ACCEPT_TIMEOUT)>
|
||||
auto asyncAccept(const AdcNetServiceASIOBase::endpoint_t& endpoint,
|
||||
TokenT&& token,
|
||||
|
||||
Reference in New Issue
Block a user