<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>ip::icmp::resolver_query</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__icmp.html" title="ip::icmp">
<link rel="prev" href="resolver_iterator.html" title="ip::icmp::resolver_iterator">
<link rel="next" href="socket.html" title="ip::icmp::socket">
</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="resolver_iterator.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ip__icmp.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="socket.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__icmp.resolver_query"></a><a class="link" href="resolver_query.html" title="ip::icmp::resolver_query">ip::icmp::resolver_query</a>
</h4></div></div></div>
<p>
          <a class="indexterm" name="id1206767"></a> 
(Deprecated: use <code class="computeroutput"><span class="identifier">resolver</span><span class="special">::</span><span class="identifier">query</span></code>.)
          The type of a resolver query.
        </p>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_resolver_query</span><span class="special">&lt;</span> <span class="identifier">icmp</span> <span class="special">&gt;</span> <span class="identifier">resolver_query</span><span class="special">;</span>
</pre>
<a name="boost_asio.reference.ip__icmp.resolver_query.types"></a><h6>
<a name="id1206847"></a>
          <a class="link" href="resolver_query.html#boost_asio.reference.ip__icmp.resolver_query.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_query/flags.html" title="ip::basic_resolver_query::flags"><span class="bold"><strong>flags</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    A bitmask type (C++ Std [lib.bitmask.types]).
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/protocol_type.html" title="ip::basic_resolver_query::protocol_type"><span class="bold"><strong>protocol_type</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    The protocol type associated with the endpoint query.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<a name="boost_asio.reference.ip__icmp.resolver_query.member_functions"></a><h6>
<a name="id1206961"></a>
          <a class="link" href="resolver_query.html#boost_asio.reference.ip__icmp.resolver_query.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_query/basic_resolver_query.html" title="ip::basic_resolver_query::basic_resolver_query"><span class="bold"><strong>basic_resolver_query</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Construct with specified service name for any protocol.
                  </p>
                  <p>
                    Construct with specified service name for a given protocol.
                  </p>
                  <p>
                    Construct with specified host name and service name for any protocol.
                  </p>
                  <p>
                    Construct with specified host name and service name for a given
                    protocol.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/hints.html" title="ip::basic_resolver_query::hints"><span class="bold"><strong>hints</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Get the hints associated with the query.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/host_name.html" title="ip::basic_resolver_query::host_name"><span class="bold"><strong>host_name</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Get the host name associated with the query.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/service_name.html" title="ip::basic_resolver_query::service_name"><span class="bold"><strong>service_name</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Get the service name associated with the query.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<a name="boost_asio.reference.ip__icmp.resolver_query.data_members"></a><h6>
<a name="id1207151"></a>
          <a class="link" href="resolver_query.html#boost_asio.reference.ip__icmp.resolver_query.data_members">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_query/address_configured.html" title="ip::basic_resolver_query::address_configured"><span class="bold"><strong>address_configured</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Only return IPv4 addresses if a non-loopback IPv4 address is
                    configured for the system. Only return IPv6 addresses if a non-loopback
                    IPv6 address is configured for the system.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/all_matching.html" title="ip::basic_resolver_query::all_matching"><span class="bold"><strong>all_matching</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    If used with v4_mapped, return all matching IPv6 and IPv4 addresses.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/canonical_name.html" title="ip::basic_resolver_query::canonical_name"><span class="bold"><strong>canonical_name</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Determine the canonical name of the host specified in the query.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/numeric_host.html" title="ip::basic_resolver_query::numeric_host"><span class="bold"><strong>numeric_host</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Host name should be treated as a numeric string defining an IPv4
                    or IPv6 address and no name resolution should be attempted.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/numeric_service.html" title="ip::basic_resolver_query::numeric_service"><span class="bold"><strong>numeric_service</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Service name should be treated as a numeric string defining a
                    port number and no name resolution should be attempted.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/passive.html" title="ip::basic_resolver_query::passive"><span class="bold"><strong>passive</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    Indicate that returned endpoint is intended for use as a locally
                    bound socket endpoint.
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    <a class="link" href="../ip__basic_resolver_query/v4_mapped.html" title="ip::basic_resolver_query::v4_mapped"><span class="bold"><strong>v4_mapped</strong></span></a>
                  </p>
                </td>
<td>
                  <p>
                    If the query protocol family is specified as IPv6, return IPv4-mapped
                    IPv6 addresses on finding no IPv6 addresses.
                  </p>
                </td>
</tr>
</tbody>
</table></div>
<p>
          The <a class="link" href="../ip__basic_resolver_query.html" title="ip::basic_resolver_query"><code class="computeroutput"><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_query</span></code></a> class template
          describes a query that can be passed to a resolver.
        </p>
<a name="boost_asio.reference.ip__icmp.resolver_query.thread_safety"></a><h6>
<a name="id1207450"></a>
          <a class="link" href="resolver_query.html#boost_asio.reference.ip__icmp.resolver_query.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__icmp.resolver_query.requirements"></a><h6>
<a name="id1207502"></a>
          <a class="link" href="resolver_query.html#boost_asio.reference.ip__icmp.resolver_query.requirements">Requirements</a>
        </h6>
<p>
          <span class="bold"><strong>Header: </strong></span><code class="literal">boost/asio/ip/icmp.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="resolver_iterator.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ip__icmp.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="socket.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
