Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Click here to view the latest version of this page.
PrevUpHomeNext

Resolver service requirements

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.

Table22.ResolverService requirements

expression

return type

assertion/note
pre/post-condition

a.destroy(b);

From IoObjectService requirements. Implicitly cancels asynchronous resolve operations, as if by calling a.cancel(b, ec).

a.cancel(b, ec);

error_code

Causes any outstanding asynchronous resolve operations to complete as soon as possible. Handlers for cancelled operations shall be passed the error code error::operation_aborted.

a.resolve(b, q, ec);

ip::basic_resolver_iterator<
  InternetProtocol>

On success, returns an iterator i such that i != ip::basic_resolver_iterator<InternetProtocol>(). Otherwise returns ip::basic_resolver_iterator<InternetProtocol>().

a.async_resolve(b, q, h);

Initiates an asynchronous resolve operation that is performed via the io_service object a.io_service() and behaves according to asynchronous operation requirements.

If the operation completes successfully, the ResolveHandler object h shall be invoked with an iterator object i such that the condition i != ip::basic_resolver_iterator<InternetProtocol>() holds. Otherwise it is invoked with ip::basic_resolver_iterator<InternetProtocol>().

a.resolve(b, e, ec);

ip::basic_resolver_iterator<
  InternetProtocol>

On success, returns an iterator i such that i != ip::basic_resolver_iterator<InternetProtocol>(). Otherwise returns ip::basic_resolver_iterator<InternetProtocol>().

a.async_resolve(b, e, h);

Initiates an asynchronous resolve operation that is performed via the io_service object a.io_service() and behaves according to asynchronous operation requirements.

If the operation completes successfully, the ResolveHandler object h shall be invoked with an iterator object i such that the condition i != ip::basic_resolver_iterator<InternetProtocol>() holds. Otherwise it is invoked with ip::basic_resolver_iterator<InternetProtocol>().



PrevUpHomeNext