...
This commit is contained in:
@@ -55,6 +55,28 @@ public:
|
||||
}
|
||||
|
||||
|
||||
template <interfaces::adc_netsession_c SessionT, typename TokenT, typename... NetServiceCtorArgTs>
|
||||
void start(const SessionT::netservice_t::endpoint_t& endpoint,
|
||||
SessionT::netsession_ident_t id,
|
||||
SessionT::netsession_ctx_t sess_ctx,
|
||||
TokenT&& token,
|
||||
NetServiceCtorArgTs&&... ctor_args)
|
||||
{
|
||||
auto srv_sptr =
|
||||
std::make_shared<typename SessionT::netservice_t>(std::forward<NetServiceCtorArgTs>(ctor_args)...);
|
||||
|
||||
// try to connect to server and create session
|
||||
srv_sptr->asyncConnect(
|
||||
endpoint,
|
||||
[id = std::move(id), sess_ctx = std::move(sess_ctx), srv_sptr,
|
||||
wrapper = traits::adc_pf_wrapper(std::forward<TokenT>(token))](auto ec) mutable {
|
||||
// create session
|
||||
std::get<0>(wrapper)(ec, {std::move(id), std::move(*srv_sptr), std::move(sess_ctx)});
|
||||
},
|
||||
_connectTimeout);
|
||||
}
|
||||
|
||||
|
||||
template <traits::adc_time_duration_c DT>
|
||||
void setConnectTimeout(const DT& timeout)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user