120 {
121 AddressHandle address;
124 } else {
125 Resolver resolver{*
loop_};
127 }
128
130
133 if (initStatus < 0) {
134 throw UvcoException(initStatus,
135 "TcpClient::connect() uv_tcp_init() failed");
136 }
137
138 const uv_status connectStatus = uv_tcp_connect(
140 if (connectStatus < 0) {
141
142 throw UvcoException(connectStatus,
143 "TcpClient::connect() failed immediately");
144 }
145
146 std::optional<UvcoException> maybeError;
147 try {
149 } catch (const UvcoException &e) {
150 maybeError = e;
151 }
152
153 std::unique_ptr<uv_tcp_t> tcpSocket = std::move(
connect.socket_);
155 BOOST_ASSERT(maybeError.has_value());
156 throw std::move(maybeError.value());
157}
Promise< TcpStream > connect()
Definition tcp.cc:120
static void onConnect(uv_connect_t *req, uv_status status)
Definition tcp.cc:159
void closeHandle(Handle *handle, void(*closer)(CloserArg *, void(*)(uv_handle_t *)))
Definition close.h:37
int uv_status
Result of a libuv operation, an errno error code.
Definition internal_utils.h:22