<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>ip::tcp::resolver</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../ip__tcp.html" title="ip::tcp">
<link rel="prev" href="protocol.html" title="ip::tcp::protocol">
<link rel="next" href="resolver_iterator.html" title="ip::tcp::resolver_iterator">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="protocol.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ip__tcp.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="resolver_iterator.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.ip__tcp.resolver"></a><a class="link" href="resolver.html" title="ip::tcp::resolver">ip::tcp::resolver</a>
</h4></div></div></div>
<p>
          <a class="indexterm" name="id1222440"></a> 
The TCP resolver type.
        </p>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_resolver</span><span class="special">&lt;</span> <span class="identifier">tcp</span> <span class="special">&gt;</span> <span class="identifier">resolver</span><span class="special">;</span>
</pre>
<a name="boost_asio.reference.ip__tcp.resolver.types"></a><h6>
<a name="id1222500"></a>
          <a class="link" href="resolver.html#boost_asio.reference.ip__tcp.resolver.types">Types</a>
        </h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                  <p>
                    Name
                  </p>
                </th>
<th>
                  <p>
                    Description
                  </p>
                </th>
</tr></thead>
<tbody>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/endpoint_type.html" title="ip::basic_resolver::endpoint_type"><span class="bold"><strong>endpoint_type</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The endpoint type.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/implementation_type.html" title="ip::basic_resolver::implementation_type"><span class="bold"><strong>implementation_type</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The underlying implementation type of I/O object.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/iterator.html" title="ip::basic_resolver::iterator"><span class="bold"><strong>iterator</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The iterator type.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/protocol_type.html" title="ip::basic_resolver::protocol_type"><span class="bold"><strong>protocol_type</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The protocol type.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/query.html" title="ip::basic_resolver::query"><span class="bold"><strong>query</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The query type.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/service_type.html" title="ip::basic_resolver::service_type"><span class="bold"><strong>service_type</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The type of the service that will be used to provide I/O operations.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<a name="boost_asio.reference.ip__tcp.resolver.member_functions"></a><h6>
<a name="id1222728"></a>
          <a class="link" href="resolver.html#boost_asio.reference.ip__tcp.resolver.member_functions">Member
          Functions</a>
        </h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                  <p>
                    Name
                  </p>
                </th>
<th>
                  <p>
                    Description
                  </p>
                </th>
</tr></thead>
<tbody>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/async_resolve.html" title="ip::basic_resolver::async_resolve"><span class="bold"><strong>async_resolve</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Asynchronously perform forward resolution of a query to a list
                    of entries.
                  </p>
                  <p>
                    Asynchronously perform reverse resolution of an endpoint to a
                    list of entries.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/basic_resolver.html" title="ip::basic_resolver::basic_resolver"><span class="bold"><strong>basic_resolver</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Constructor.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/cancel.html" title="ip::basic_resolver::cancel"><span class="bold"><strong>cancel</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Cancel any asynchronous operations that are waiting on the resolver.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/get_io_service.html" title="ip::basic_resolver::get_io_service"><span class="bold"><strong>get_io_service</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Get the io_service associated with the object.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/io_service.html" title="ip::basic_resolver::io_service"><span class="bold"><strong>io_service</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    (Deprecated: use get_io_service().) Get the io_service associated
                    with the object.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/resolve.html" title="ip::basic_resolver::resolve"><span class="bold"><strong>resolve</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Perform forward resolution of a query to a list of entries.
                  </p>
                  <p>
                    Perform reverse resolution of an endpoint to a list of entries.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<a name="boost_asio.reference.ip__tcp.resolver.protected_data_members"></a><h6>
<a name="id1222970"></a>
          <a class="link" href="resolver.html#boost_asio.reference.ip__tcp.resolver.protected_data_members">Protected
          Data Members</a>
        </h6>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                  <p>
                    Name
                  </p>
                </th>
<th>
                  <p>
                    Description
                  </p>
                </th>
</tr></thead>
<tbody>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/implementation.html" title="ip::basic_resolver::implementation"><span class="bold"><strong>implementation</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The underlying implementation of the I/O object.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver/service.html" title="ip::basic_resolver::service"><span class="bold"><strong>service</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The service associated with the I/O object.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<p>
          The <a class="link" href="../ip__basic_resolver.html" title="ip::basic_resolver"><code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver</span></code></a> class template
          provides the ability to resolve a query to a list of endpoints.
        </p>
<a name="boost_asio.reference.ip__tcp.resolver.thread_safety"></a><h6>
<a name="id1223385"></a>
          <a class="link" href="resolver.html#boost_asio.reference.ip__tcp.resolver.thread_safety">Thread
          Safety</a>
        </h6>
<p>
          <span class="bold"><strong>Distinct</strong></span> <span class="bold"><strong>objects:</strong></span>
          Safe.
        </p>
<p>
          <span class="bold"><strong>Shared</strong></span> <span class="bold"><strong>objects:</strong></span>
          Unsafe.
        </p>
<a name="boost_asio.reference.ip__tcp.resolver.requirements"></a><h6>
<a name="id1223438"></a>
          <a class="link" href="resolver.html#boost_asio.reference.ip__tcp.resolver.requirements">Requirements</a>
        </h6>
<p>
          <span class="bold"><strong>Header: </strong></span><code class="literal">boost/asio/ip/tcp.hpp</code>
        </p>
<p>
          <span class="bold"><strong>Convenience header: </strong></span><code class="literal">boost/asio.hpp</code>
        </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2003 - 2010 Christopher M. Kohlhoff<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        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>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="protocol.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ip__tcp.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="resolver_iterator.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
