2 / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com)
4 / Distributed under the Boost Software License, Version 1.0. (See accompanying
5 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
8 [section:ResolverService Resolver service requirements]
10 A resolver service must meet the requirements for an [link
11 boost_asio.reference.IoObjectService I/O object service], as well as the
12 additional requirements listed below.
14 In the table below, `X` denotes a resolver service class for protocol
15 `InternetProtocol`, `a` denotes a value of type `X`, `b` denotes a value of
16 type `X::implementation_type`, `q` denotes a value of type
17 `ip::basic_resolver_query<InternetProtocol>`, `e` denotes a value of type
18 `ip::basic_endpoint<InternetProtocol>`, `ec` denotes a value of type
19 `error_code`, and `h` denotes a value meeting [link
20 boost_asio.reference.ResolveHandler `ResolveHandler`] requirements.
22 [table ResolverService requirements
23 [[expression] [return type] [assertion/note\npre/post-condition]]
28 From [link boost_asio.reference.IoObjectService IoObjectService]
29 requirements. Implicitly cancels asynchronous resolve operations, as if by
30 calling `a.cancel(b, ec)`.
39 Causes any outstanding asynchronous resolve operations to complete as
40 soon as possible. Handlers for cancelled operations shall be passed the
41 error code `error::operation_aborted`.
49 ip::basic_resolver_iterator<
53 On success, returns an iterator `i` such that `i !=
54 ip::basic_resolver_iterator<InternetProtocol>()`. Otherwise returns
55 `ip::basic_resolver_iterator<InternetProtocol>()`.
60 a.async_resolve(b, q, h);
64 Initiates an asynchronous resolve operation that is performed via the
65 `io_service` object `a.get_io_service()` and behaves according to [link
66 boost_asio.reference.asynchronous_operations asynchronous operation]
69 If the operation completes successfully, the `ResolveHandler` object `h`
70 shall be invoked with an iterator object `i` such that the condition `i
71 != ip::basic_resolver_iterator<InternetProtocol>()` holds. Otherwise it
72 is invoked with `ip::basic_resolver_iterator<InternetProtocol>()`.
80 ip::basic_resolver_iterator<
84 On success, returns an iterator `i` such that `i !=
85 ip::basic_resolver_iterator<InternetProtocol>()`. Otherwise returns
86 `ip::basic_resolver_iterator<InternetProtocol>()`.
91 a.async_resolve(b, e, h);
95 Initiates an asynchronous resolve operation that is performed via the
96 `io_service` object `a.get_io_service()` and behaves according to [link
97 boost_asio.reference.asynchronous_operations asynchronous operation]
100 If the operation completes successfully, the `ResolveHandler` object `h`
101 shall be invoked with an iterator object `i` such that the condition `i
102 != ip::basic_resolver_iterator<InternetProtocol>()` holds. Otherwise it
103 is invoked with `ip::basic_resolver_iterator<InternetProtocol>()`.