#pragma once #include namespace brynet { namespace net { using ConnectOption = detail::ConnectOption; class AsyncConnector : public detail::AsyncConnectorDetail, public std::enable_shared_from_this { public: using Ptr = std::shared_ptr; void startWorkerThread() { detail::AsyncConnectorDetail::startWorkerThread(); } void stopWorkerThread() { detail::AsyncConnectorDetail::stopWorkerThread(); } void asyncConnect(const ConnectOption& option) { detail::AsyncConnectorDetail::asyncConnect(option); } static Ptr Create() { class make_shared_enabler : public AsyncConnector { }; return std::make_shared(); } private: AsyncConnector() = default; }; }}// namespace brynet::net