...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
A resolver service must meet the requirements for an I/O object service, as well as the additional requirements listed below.
In the table below, X
denotes
a resolver service class for protocol InternetProtocol
,
a
denotes a value of type
X
, b
denotes a value of type X::implementation_type
,
q
denotes a value of type
ip::basic_resolver_query<InternetProtocol>
,
e
denotes a value of type
ip::basic_endpoint<InternetProtocol>
,
ec
denotes a value of type
error_code
, and h
denotes a value meeting ResolveHandler
requirements.
Table 23. ResolverService requirements
expression |
return type |
assertion/note |
---|---|---|
|
From IoObjectService
requirements. Implicitly cancels asynchronous resolve operations,
as if by calling |
|
a.cancel(b, ec);
|
|
Causes any outstanding asynchronous resolve operations to complete
as soon as possible. Handlers for cancelled operations shall be
passed the error code |
a.resolve(b, q, ec);
|
ip::basic_resolver_iterator< InternetProtocol>
|
On success, returns an iterator |
a.async_resolve(b, q, h);
|
Initiates an asynchronous resolve operation that is performed via
the |
|
a.resolve(b, e, ec);
|
ip::basic_resolver_iterator< InternetProtocol>
|
On success, returns an iterator |
a.async_resolve(b, e, h);
|
Initiates an asynchronous resolve operation that is performed via
the |