Imported Upstream version 1.64.0
[platform/upstream/boost.git] / doc / html / boost_asio / reference / ResolverService.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
4 <title>Resolver service requirements</title>
5 <link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
6 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7 <link rel="home" href="../../boost_asio.html" title="Boost.Asio">
8 <link rel="up" href="../reference.html" title="Reference">
9 <link rel="prev" href="ResolveHandler.html" title="Resolve handler requirements">
10 <link rel="next" href="SeqPacketSocketService.html" title="Sequenced packet socket service requirements">
11 </head>
12 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13 <table cellpadding="2" width="100%"><tr>
14 <td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
15 <td align="center"><a href="../../../../index.html">Home</a></td>
16 <td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
17 <td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18 <td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19 <td align="center"><a href="../../../../more/index.htm">More</a></td>
20 </tr></table>
21 <hr>
22 <div class="spirit-nav">
23 <a accesskey="p" href="ResolveHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../boost_asio.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="SeqPacketSocketService.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
24 </div>
25 <div class="section">
26 <div class="titlepage"><div><div><h3 class="title">
27 <a name="boost_asio.reference.ResolverService"></a><a class="link" href="ResolverService.html" title="Resolver service requirements">Resolver service
28       requirements</a>
29 </h3></div></div></div>
30 <p>
31         A resolver service must meet the requirements for an <a class="link" href="IoObjectService.html" title="I/O object service requirements">I/O
32         object service</a>, as well as the additional requirements listed below.
33       </p>
34 <p>
35         In the table below, <code class="computeroutput"><span class="identifier">X</span></code> denotes
36         a resolver service class for protocol <code class="computeroutput"><span class="identifier">InternetProtocol</span></code>,
37         <code class="computeroutput"><span class="identifier">a</span></code> denotes a value of type
38         <code class="computeroutput"><span class="identifier">X</span></code>, <code class="computeroutput"><span class="identifier">b</span></code>
39         denotes a value of type <code class="computeroutput"><span class="identifier">X</span><span class="special">::</span><span class="identifier">implementation_type</span></code>,
40         <code class="computeroutput"><span class="identifier">q</span></code> denotes a value of type
41         <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_query</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;</span></code>,
42         <code class="computeroutput"><span class="identifier">e</span></code> denotes a value of type
43         <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;</span></code>,
44         <code class="computeroutput"><span class="identifier">ec</span></code> denotes a value of type
45         <code class="computeroutput"><span class="identifier">error_code</span></code>, and <code class="computeroutput"><span class="identifier">h</span></code> denotes a value meeting <a class="link" href="ResolveHandler.html" title="Resolve handler requirements"><code class="computeroutput"><span class="identifier">ResolveHandler</span></code></a> requirements.
46       </p>
47 <div class="table">
48 <a name="boost_asio.reference.ResolverService.t0"></a><p class="title"><b>Table&#160;23.&#160;ResolverService requirements</b></p>
49 <div class="table-contents"><table class="table" summary="ResolverService requirements">
50 <colgroup>
51 <col>
52 <col>
53 <col>
54 </colgroup>
55 <thead><tr>
56 <th>
57                 <p>
58                   expression
59                 </p>
60               </th>
61 <th>
62                 <p>
63                   return type
64                 </p>
65               </th>
66 <th>
67                 <p>
68                   assertion/note<br> pre/post-condition
69                 </p>
70               </th>
71 </tr></thead>
72 <tbody>
73 <tr>
74 <td>
75                 <p>
76                   <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">destroy</span><span class="special">(</span><span class="identifier">b</span><span class="special">);</span></code>
77                 </p>
78               </td>
79 <td>
80               </td>
81 <td>
82                 <p>
83                   From <a class="link" href="IoObjectService.html" title="I/O object service requirements">IoObjectService</a>
84                   requirements. Implicitly cancels asynchronous resolve operations,
85                   as if by calling <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">cancel</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">ec</span><span class="special">)</span></code>.
86                 </p>
87               </td>
88 </tr>
89 <tr>
90 <td>
91                 <p>
92 </p>
93 <pre class="programlisting"><span class="identifier">a</span><span class="special">.</span><span class="identifier">cancel</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">ec</span><span class="special">);</span>
94 </pre>
95 <p>
96                 </p>
97               </td>
98 <td>
99                 <p>
100                   <code class="computeroutput"><span class="identifier">error_code</span></code>
101                 </p>
102               </td>
103 <td>
104                 <p>
105                   Causes any outstanding asynchronous resolve operations to complete
106                   as soon as possible. Handlers for cancelled operations shall be
107                   passed the error code <code class="computeroutput"><span class="identifier">error</span><span class="special">::</span><span class="identifier">operation_aborted</span></code>.
108                 </p>
109               </td>
110 </tr>
111 <tr>
112 <td>
113                 <p>
114 </p>
115 <pre class="programlisting"><span class="identifier">a</span><span class="special">.</span><span class="identifier">resolve</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">ec</span><span class="special">);</span>
116 </pre>
117 <p>
118                 </p>
119               </td>
120 <td>
121                 <p>
122 </p>
123 <pre class="programlisting"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span>
124   <span class="identifier">InternetProtocol</span><span class="special">&gt;</span>
125 </pre>
126 <p>
127                 </p>
128               </td>
129 <td>
130                 <p>
131                   On success, returns an iterator <code class="computeroutput"><span class="identifier">i</span></code>
132                   such that <code class="computeroutput"><span class="identifier">i</span> <span class="special">!=</span>
133                   <span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;()</span></code>.
134                   Otherwise returns <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;()</span></code>.
135                 </p>
136               </td>
137 </tr>
138 <tr>
139 <td>
140                 <p>
141 </p>
142 <pre class="programlisting"><span class="identifier">a</span><span class="special">.</span><span class="identifier">async_resolve</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">q</span><span class="special">,</span> <span class="identifier">h</span><span class="special">);</span>
143 </pre>
144 <p>
145                 </p>
146               </td>
147 <td>
148               </td>
149 <td>
150                 <p>
151                   Initiates an asynchronous resolve operation that is performed via
152                   the <code class="computeroutput"><span class="identifier">io_service</span></code>
153                   object <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">get_io_service</span><span class="special">()</span></code>
154                   and behaves according to <a class="link" href="asynchronous_operations.html" title="Requirements on asynchronous operations">asynchronous
155                   operation</a> requirements.<br> <br> If the operation completes
156                   successfully, the <code class="computeroutput"><span class="identifier">ResolveHandler</span></code>
157                   object <code class="computeroutput"><span class="identifier">h</span></code> shall
158                   be invoked with an iterator object <code class="computeroutput"><span class="identifier">i</span></code>
159                   such that the condition <code class="computeroutput"><span class="identifier">i</span>
160                   <span class="special">!=</span> <span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;()</span></code> holds. Otherwise it is invoked
161                   with <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;()</span></code>.
162                 </p>
163               </td>
164 </tr>
165 <tr>
166 <td>
167                 <p>
168 </p>
169 <pre class="programlisting"><span class="identifier">a</span><span class="special">.</span><span class="identifier">resolve</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">ec</span><span class="special">);</span>
170 </pre>
171 <p>
172                 </p>
173               </td>
174 <td>
175                 <p>
176 </p>
177 <pre class="programlisting"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span>
178   <span class="identifier">InternetProtocol</span><span class="special">&gt;</span>
179 </pre>
180 <p>
181                 </p>
182               </td>
183 <td>
184                 <p>
185                   On success, returns an iterator <code class="computeroutput"><span class="identifier">i</span></code>
186                   such that <code class="computeroutput"><span class="identifier">i</span> <span class="special">!=</span>
187                   <span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;()</span></code>.
188                   Otherwise returns <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;()</span></code>.
189                 </p>
190               </td>
191 </tr>
192 <tr>
193 <td>
194                 <p>
195 </p>
196 <pre class="programlisting"><span class="identifier">a</span><span class="special">.</span><span class="identifier">async_resolve</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">e</span><span class="special">,</span> <span class="identifier">h</span><span class="special">);</span>
197 </pre>
198 <p>
199                 </p>
200               </td>
201 <td>
202               </td>
203 <td>
204                 <p>
205                   Initiates an asynchronous resolve operation that is performed via
206                   the <code class="computeroutput"><span class="identifier">io_service</span></code>
207                   object <code class="computeroutput"><span class="identifier">a</span><span class="special">.</span><span class="identifier">get_io_service</span><span class="special">()</span></code>
208                   and behaves according to <a class="link" href="asynchronous_operations.html" title="Requirements on asynchronous operations">asynchronous
209                   operation</a> requirements.<br> <br> If the operation completes
210                   successfully, the <code class="computeroutput"><span class="identifier">ResolveHandler</span></code>
211                   object <code class="computeroutput"><span class="identifier">h</span></code> shall
212                   be invoked with an iterator object <code class="computeroutput"><span class="identifier">i</span></code>
213                   such that the condition <code class="computeroutput"><span class="identifier">i</span>
214                   <span class="special">!=</span> <span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;()</span></code> holds. Otherwise it is invoked
215                   with <code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_iterator</span><span class="special">&lt;</span><span class="identifier">InternetProtocol</span><span class="special">&gt;()</span></code>.
216                 </p>
217               </td>
218 </tr>
219 </tbody>
220 </table></div>
221 </div>
222 <br class="table-break">
223 </div>
224 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
225 <td align="left"></td>
226 <td align="right"><div class="copyright-footer">Copyright &#169; 2003-2017 Christopher M. Kohlhoff<p>
227         Distributed under the Boost Software License, Version 1.0. (See accompanying
228         file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
229       </p>
230 </div></td>
231 </tr></table>
232 <hr>
233 <div class="spirit-nav">
234 <a accesskey="p" href="ResolveHandler.html"><img src="../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../boost_asio.html"><img src="../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="SeqPacketSocketService.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a>
235 </div>
236 </body>
237 </html>