uvco 0.1
Loading...
Searching...
No Matches
uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_ Struct Reference

Public Member Functions

 AddrinfoAwaiter_ ()
 ~AddrinfoAwaiter_ ()
bool await_ready ()
bool await_suspend (std::coroutine_handle<> handle)
struct addrinfo * await_resume ()

Public Attributes

std::unique_ptr< uv_getaddrinfo_t > req_
std::optional< struct addrinfo * > addrinfo_
std::optional< int > status_
std::coroutine_handle handle_

Constructor & Destructor Documentation

◆ AddrinfoAwaiter_()

uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_::AddrinfoAwaiter_ ( )
191 : req_{std::make_unique<uv_getaddrinfo_t>()} {}
std::unique_ptr< uv_getaddrinfo_t > req_
Definition name_resolution.cc:184

◆ ~AddrinfoAwaiter_()

uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_::~AddrinfoAwaiter_ ( )
193 {
194 if (req_ != nullptr && !requestDataIsNull(req_.get())) {
195 resetRequestData(req_.get());
196 // Request will be freed by onAddrinfo callback
197 uv_cancel((uv_req_t *)req_.release());
198 }
199 if (addrinfo_.has_value()) {
200 uv_freeaddrinfo(addrinfo_.value());
201 }
202}
void resetRequestData(Request *req)
Definition internal_utils.h:95
bool requestDataIsNull(Request *req)
Check if request data is null.
Definition internal_utils.h:107
std::optional< struct addrinfo * > addrinfo_
Definition name_resolution.cc:185

Member Function Documentation

◆ await_ready()

bool uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_::await_ready ( )
204{ return false; }

◆ await_resume()

struct addrinfo * uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_::await_resume ( )
206 {
207 BOOST_ASSERT(addrinfo_);
208 BOOST_ASSERT(!requestDataIsNull(req_.get()));
209 resetRequestData(req_.get());
210 return *addrinfo_;
211}

◆ await_suspend()

bool uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_::await_suspend ( std::coroutine_handle<> handle)
213 {
214 handle_ = handle;
215 setRequestData(req_.get(), this);
216 return true;
217}
void setRequestData(Request *req, Data *data)
Set data pointer on request.
Definition internal_utils.h:90
std::coroutine_handle handle_
Definition name_resolution.cc:187

Member Data Documentation

◆ addrinfo_

std::optional<struct addrinfo *> uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_::addrinfo_

◆ handle_

std::coroutine_handle uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_::handle_

◆ req_

std::unique_ptr<uv_getaddrinfo_t> uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_::req_

◆ status_

std::optional<int> uvco::anonymous_namespace{name_resolution.cc}::AddrinfoAwaiter_::status_

The documentation for this struct was generated from the following file: