error.hpp
Go to the documentation of this file.
00001 //
00002 // error.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_ERROR_HPP
00012 #define ASIO_ERROR_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 <cerrno>
00022 #include <boost/config.hpp>
00023 #include "asio/detail/pop_options.hpp"
00024 
00025 #include "asio/error_code.hpp"
00026 #include "asio/detail/socket_types.hpp"
00027 
00028 #if defined(GENERATING_DOCUMENTATION)
00029 
00030 # define ASIO_NATIVE_ERROR(e) implementation_defined
00031 
00032 # define ASIO_SOCKET_ERROR(e) implementation_defined
00033 
00034 # define ASIO_NETDB_ERROR(e) implementation_defined
00035 
00036 # define ASIO_GETADDRINFO_ERROR(e) implementation_defined
00037 
00038 # define ASIO_WIN_OR_POSIX(e_win, e_posix) implementation_defined
00039 #elif defined(BOOST_WINDOWS) || defined(__CYGWIN__)
00040 # define ASIO_NATIVE_ERROR(e) e
00041 # define ASIO_SOCKET_ERROR(e) WSA ## e
00042 # define ASIO_NETDB_ERROR(e) WSA ## e
00043 # define ASIO_GETADDRINFO_ERROR(e) WSA ## e
00044 # define ASIO_WIN_OR_POSIX(e_win, e_posix) e_win
00045 #else
00046 # define ASIO_NATIVE_ERROR(e) e
00047 # define ASIO_SOCKET_ERROR(e) e
00048 # define ASIO_NETDB_ERROR(e) e
00049 # define ASIO_GETADDRINFO_ERROR(e) e
00050 # define ASIO_WIN_OR_POSIX(e_win, e_posix) e_posix
00051 #endif
00052 
00053 namespace asio {
00054 namespace error {
00055 
00056 enum basic_errors
00057 {
00059   access_denied = ASIO_SOCKET_ERROR(EACCES),
00060 
00062   address_family_not_supported = ASIO_SOCKET_ERROR(EAFNOSUPPORT),
00063 
00065   address_in_use = ASIO_SOCKET_ERROR(EADDRINUSE),
00066 
00068   already_connected = ASIO_SOCKET_ERROR(EISCONN),
00069 
00071   already_started = ASIO_SOCKET_ERROR(EALREADY),
00072 
00074   broken_pipe = ASIO_WIN_OR_POSIX(
00075       ASIO_NATIVE_ERROR(ERROR_BROKEN_PIPE),
00076       ASIO_NATIVE_ERROR(EPIPE)),
00077 
00079   connection_aborted = ASIO_SOCKET_ERROR(ECONNABORTED),
00080 
00082   connection_refused = ASIO_SOCKET_ERROR(ECONNREFUSED),
00083 
00085   connection_reset = ASIO_SOCKET_ERROR(ECONNRESET),
00086 
00088   bad_descriptor = ASIO_SOCKET_ERROR(EBADF),
00089 
00091   fault = ASIO_SOCKET_ERROR(EFAULT),
00092 
00094   host_unreachable = ASIO_SOCKET_ERROR(EHOSTUNREACH),
00095 
00097   in_progress = ASIO_SOCKET_ERROR(EINPROGRESS),
00098 
00100   interrupted = ASIO_SOCKET_ERROR(EINTR),
00101 
00103   invalid_argument = ASIO_SOCKET_ERROR(EINVAL),
00104 
00106   message_size = ASIO_SOCKET_ERROR(EMSGSIZE),
00107 
00109   name_too_long = ASIO_SOCKET_ERROR(ENAMETOOLONG),
00110 
00112   network_down = ASIO_SOCKET_ERROR(ENETDOWN),
00113 
00115   network_reset = ASIO_SOCKET_ERROR(ENETRESET),
00116 
00118   network_unreachable = ASIO_SOCKET_ERROR(ENETUNREACH),
00119 
00121   no_descriptors = ASIO_SOCKET_ERROR(EMFILE),
00122 
00124   no_buffer_space = ASIO_SOCKET_ERROR(ENOBUFS),
00125 
00127   no_memory = ASIO_WIN_OR_POSIX(
00128       ASIO_NATIVE_ERROR(ERROR_OUTOFMEMORY),
00129       ASIO_NATIVE_ERROR(ENOMEM)),
00130 
00132   no_permission = ASIO_WIN_OR_POSIX(
00133       ASIO_NATIVE_ERROR(ERROR_ACCESS_DENIED),
00134       ASIO_NATIVE_ERROR(EPERM)),
00135 
00137   no_protocol_option = ASIO_SOCKET_ERROR(ENOPROTOOPT),
00138 
00140   not_connected = ASIO_SOCKET_ERROR(ENOTCONN),
00141 
00143   not_socket = ASIO_SOCKET_ERROR(ENOTSOCK),
00144 
00146   operation_aborted = ASIO_WIN_OR_POSIX(
00147       ASIO_NATIVE_ERROR(ERROR_OPERATION_ABORTED),
00148       ASIO_NATIVE_ERROR(ECANCELED)),
00149 
00151   operation_not_supported = ASIO_SOCKET_ERROR(EOPNOTSUPP),
00152 
00154   shut_down = ASIO_SOCKET_ERROR(ESHUTDOWN),
00155 
00157   timed_out = ASIO_SOCKET_ERROR(ETIMEDOUT),
00158 
00160   try_again = ASIO_WIN_OR_POSIX(
00161       ASIO_NATIVE_ERROR(ERROR_RETRY),
00162       ASIO_NATIVE_ERROR(EAGAIN)),
00163 
00165   would_block = ASIO_SOCKET_ERROR(EWOULDBLOCK)
00166 };
00167 
00168 enum netdb_errors
00169 {
00171   host_not_found = ASIO_NETDB_ERROR(HOST_NOT_FOUND),
00172 
00174   host_not_found_try_again = ASIO_NETDB_ERROR(TRY_AGAIN),
00175 
00177   no_data = ASIO_NETDB_ERROR(NO_DATA),
00178 
00180   no_recovery = ASIO_NETDB_ERROR(NO_RECOVERY)
00181 };
00182 
00183 enum addrinfo_errors
00184 {
00186   service_not_found = ASIO_WIN_OR_POSIX(
00187       ASIO_NATIVE_ERROR(WSATYPE_NOT_FOUND),
00188       ASIO_GETADDRINFO_ERROR(EAI_SERVICE)),
00189 
00191   socket_type_not_supported = ASIO_WIN_OR_POSIX(
00192       ASIO_NATIVE_ERROR(WSAESOCKTNOSUPPORT),
00193       ASIO_GETADDRINFO_ERROR(EAI_SOCKTYPE))
00194 };
00195 
00196 enum misc_errors
00197 {
00199   already_open = 1,
00200 
00202   eof,
00203 
00205   not_found,
00206 
00208   fd_set_failure
00209 };
00210 
00211 enum ssl_errors
00212 {
00213 };
00214 
00215 // boostify: error category definitions go here.
00216 
00217 inline asio::error_code make_error_code(basic_errors e)
00218 {
00219   return asio::error_code(
00220       static_cast<int>(e), get_system_category());
00221 }
00222 
00223 inline asio::error_code make_error_code(netdb_errors e)
00224 {
00225   return asio::error_code(
00226       static_cast<int>(e), get_netdb_category());
00227 }
00228 
00229 inline asio::error_code make_error_code(addrinfo_errors e)
00230 {
00231   return asio::error_code(
00232       static_cast<int>(e), get_addrinfo_category());
00233 }
00234 
00235 inline asio::error_code make_error_code(misc_errors e)
00236 {
00237   return asio::error_code(
00238       static_cast<int>(e), get_misc_category());
00239 }
00240 
00241 inline asio::error_code make_error_code(ssl_errors e)
00242 {
00243   return asio::error_code(
00244       static_cast<int>(e), get_ssl_category());
00245 }
00246 
00247 } // namespace error
00248 } // namespace asio
00249 
00250 #undef ASIO_NATIVE_ERROR
00251 #undef ASIO_SOCKET_ERROR
00252 #undef ASIO_NETDB_ERROR
00253 #undef ASIO_GETADDRINFO_ERROR
00254 #undef ASIO_WIN_OR_POSIX
00255 
00256 #include "asio/impl/error_code.ipp"
00257 
00258 #include "asio/detail/pop_options.hpp"
00259 
00260 #endif // ASIO_ERROR_HPP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


Castor
Author(s): Carpe Noctem
autogenerated on Fri Nov 8 2013 11:05:39