$search
00001 // 00002 // resolver_query_base.hpp 00003 // ~~~~~~~~~~~~~~~~~~~~~~~ 00004 // 00005 // Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com) 00006 // 00007 // Distributed under the Boost Software License, Version 1.0. (See accompanying 00008 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 00009 // 00010 00011 #ifndef ASIO_IP_RESOLVER_QUERY_BASE_HPP 00012 #define ASIO_IP_RESOLVER_QUERY_BASE_HPP 00013 00014 #if defined(_MSC_VER) && (_MSC_VER >= 1200) 00015 # pragma once 00016 #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) 00017 00018 #include "asio/detail/push_options.hpp" 00019 00020 #include "asio/detail/push_options.hpp" 00021 #include <boost/config.hpp> 00022 #include <boost/detail/workaround.hpp> 00023 #include "asio/detail/pop_options.hpp" 00024 00025 #include "asio/detail/socket_types.hpp" 00026 00027 namespace asio { 00028 namespace ip { 00029 00033 class resolver_query_base 00034 { 00035 public: 00036 #if defined(GENERATING_DOCUMENTATION) 00037 00038 static const int canonical_name = implementation_defined; 00039 00042 static const int passive = implementation_defined; 00043 00046 static const int numeric_host = implementation_defined; 00047 00050 static const int numeric_service = implementation_defined; 00051 00054 static const int v4_mapped = implementation_defined; 00055 00057 static const int all_matching = implementation_defined; 00058 00062 static const int address_configured = implementation_defined; 00063 #else 00064 BOOST_STATIC_CONSTANT(int, canonical_name = AI_CANONNAME); 00065 BOOST_STATIC_CONSTANT(int, passive = AI_PASSIVE); 00066 BOOST_STATIC_CONSTANT(int, numeric_host = AI_NUMERICHOST); 00067 # if defined(AI_NUMERICSERV) 00068 BOOST_STATIC_CONSTANT(int, numeric_service = AI_NUMERICSERV); 00069 # else 00070 BOOST_STATIC_CONSTANT(int, numeric_service = 0); 00071 # endif 00072 // Note: QNX Neutrino 6.3 defines AI_V4MAPPED, AI_ALL and AI_ADDRCONFIG but 00073 // does not implement them. Therefore they are specifically excluded here. 00074 # if defined(AI_V4MAPPED) && !defined(__QNXNTO__) 00075 BOOST_STATIC_CONSTANT(int, v4_mapped = AI_V4MAPPED); 00076 # else 00077 BOOST_STATIC_CONSTANT(int, v4_mapped = 0); 00078 # endif 00079 # if defined(AI_ALL) && !defined(__QNXNTO__) 00080 BOOST_STATIC_CONSTANT(int, all_matching = AI_ALL); 00081 # else 00082 BOOST_STATIC_CONSTANT(int, all_matching = 0); 00083 # endif 00084 # if defined(AI_ADDRCONFIG) && !defined(__QNXNTO__) 00085 BOOST_STATIC_CONSTANT(int, address_configured = AI_ADDRCONFIG); 00086 # else 00087 BOOST_STATIC_CONSTANT(int, address_configured = 0); 00088 # endif 00089 #endif 00090 00091 protected: 00093 ~resolver_query_base() 00094 { 00095 } 00096 00097 #if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) 00098 private: 00099 // Workaround to enable the empty base optimisation with Borland C++. 00100 char dummy_; 00101 #endif 00102 }; 00103 00104 } // namespace ip 00105 } // namespace asio 00106 00107 #include "asio/detail/pop_options.hpp" 00108 00109 #endif // ASIO_IP_RESOLVER_QUERY_BASE_HPP