<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>ip::basic_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__basic_resolver.html" title="ip::basic_resolver">
<link rel="prev" href="protocol_type.html" title="ip::basic_resolver::protocol_type">
<link rel="next" href="resolve.html" title="ip::basic_resolver::resolve">
</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_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ip__basic_resolver.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="resolve.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__basic_resolver.query"></a><a class="link" href="query.html" title="ip::basic_resolver::query">ip::basic_resolver::query</a>
</h4></div></div></div>
<p>
          <a class="indexterm" name="id1193017"></a> 
The query type.
        </p>
<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">basic_resolver_query</span><span class="special">&lt;</span> <span class="identifier">InternetProtocol</span> <span class="special">&gt;</span> <span class="identifier">query</span><span class="special">;</span>
</pre>
<a name="boost_asio.reference.ip__basic_resolver.query.types"></a><h6>
<a name="id1193078"></a>
          <a class="link" href="query.html#boost_asio.reference.ip__basic_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__basic_resolver.query.member_functions"></a><h6>
<a name="id1193195"></a>
          <a class="link" href="query.html#boost_asio.reference.ip__basic_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__basic_resolver.query.data_members"></a><h6>
<a name="id1193389"></a>
          <a class="link" href="query.html#boost_asio.reference.ip__basic_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__basic_resolver.query.thread_safety"></a><h6>
<a name="id1193696"></a>
          <a class="link" href="query.html#boost_asio.reference.ip__basic_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__basic_resolver.query.requirements"></a><h6>
<a name="id1193748"></a>
          <a class="link" href="query.html#boost_asio.reference.ip__basic_resolver.query.requirements">Requirements</a>
        </h6>
<p>
          <span class="bold"><strong>Header: </strong></span><code class="literal">boost/asio/ip/basic_resolver.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_type.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../ip__basic_resolver.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="resolve.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
