2010-10-04 18 views
24

¿Alguien sabe dónde encontrar una referencia para los códigos de error de impulso? En particular, los códigos de error devueltos por los manejadores de socket asíncronos ?, Google y grepping los archivos de cabecera se han desactivado en vacío.Boost error codes reference

+0

no sé impulso, pero si tienes suerte, puede obtener los mismos códigos de error como lo es en 'errno. h'. En Linux, es '/ usr/include/asm-generic/errno-base.h' y'/usr/include/asm-generic/errno.h'), ver http://lxr.linux.no/linux/ include/asm-generic/errno-base.h y http://lxr.linux.no/linux/include/asm-generic/errno.h. – pts

+0

¿su pregunta está resuelta ahora? –

+0

Sí, mi mal, me desvié. Los códigos de error se derivan de los códigos del sistema. Para Windows, estos se pueden encontrar aquí: http://msdn.microsoft.com/en-us/library/ms681381%28VS.85%29.aspx. Para Linux, el encabezado principal es /usr/incude/errno.h. Tenga en cuenta que tendrá que investigar un poco sobre Linux, ya que los códigos reales se almacenan en un archivo más oscuro, como /usr/include/asm-generic/errno.h –

Respuesta

6

lo más probable quieren

que está incluido en el asio documentation.

+0

'No se puede abrir el archivo de inclusión: 'boost/asio /errors.hpp ': No existe tal archivo o directorio' ¿Estás seguro de esto? Yo uso boost 1.55 y no funciona. Otro asio incluye causa ningún problema. –

+0

En Modular Boost (mi versión es 1.6.1), el archivo "error_codes.hpp" está en boost/system. Todos los códigos de error se definen en una enumeración, pero a la mayoría de ellos se les asignan valores de las macros existentes, p. address_family_not_supported = EAFNOSUPPORT. Estas macros se complementan con "boost/cerrno.hpp", pero deben estar definidas por "errno.h", "/usr/include/asm/errno.h" de su sistema. Los valores parecen estar estandarizados en los sistemas Unix/Linux, lo que significa que son bastante fáciles de buscar, pero AFAIK/entiendo que las definiciones de Boost están ahí para eliminar este tipo de trabajo pesado. ¿Eso ayuda? –

40

que extrae los valores de error de asio/error.hpp en Linux (estoy usando cabecera única asio no boost :: asio por cierto), aquí están:

asio::error::access_denied 13 
asio::error::address_family_not_supported 97 
asio::error::address_in_use 98 
asio::error::already_connected 106 
asio::error::already_started 114 
asio::error::broken_pipe 32 
asio::error::connection_aborted 103 
asio::error::connection_refused 111 
asio::error::connection_reset 104 
asio::error::bad_descriptor 9 
asio::error::fault 14 
asio::error::host_unreachable 113 
asio::error::in_progress 115 
asio::error::interrupted 4 
asio::error::invalid_argument 22 
asio::error::message_size 90 
asio::error::name_too_long 36 
asio::error::network_down 100 
asio::error::network_reset 102 
asio::error::network_unreachable 101 
asio::error::no_descriptors 24 
asio::error::no_buffer_space 105 
asio::error::no_memory 12 
asio::error::no_permission 1 
asio::error::no_protocol_option 92 
asio::error::not_connected 107 
asio::error::not_socket 88 
asio::error::operation_aborted 125 
asio::error::operation_not_supported 95 
asio::error::shut_down 108 
asio::error::timed_out 110 
asio::error::try_again 11 
asio::error::would_block 11 

Si desea generar su propia lista, esto debería ahorrar unos cuantos minutos de copiar y pegar:

std::cout << "asio::error::access_denied " << asio::error::access_denied << std::endl; 
std::cout << "asio::error::address_family_not_supported " << asio::error::address_family_not_supported << std::endl; 
std::cout << "asio::error::address_in_use " << asio::error::address_in_use << std::endl; 
std::cout << "asio::error::already_connected " << asio::error::already_connected << std::endl; 
std::cout << "asio::error::already_started " << asio::error::already_started << std::endl; 
std::cout << "asio::error::broken_pipe " << asio::error::broken_pipe << std::endl; 
std::cout << "asio::error::connection_aborted " << asio::error::connection_aborted << std::endl; 
std::cout << "asio::error::connection_refused " << asio::error::connection_refused << std::endl; 
std::cout << "asio::error::connection_reset " << asio::error::connection_reset << std::endl; 
std::cout << "asio::error::bad_descriptor " << asio::error::bad_descriptor << std::endl; 
std::cout << "asio::error::fault " << asio::error::fault << std::endl; 
std::cout << "asio::error::host_unreachable " << asio::error::host_unreachable << std::endl; 
std::cout << "asio::error::in_progress " << asio::error::in_progress << std::endl; 
std::cout << "asio::error::interrupted " << asio::error::interrupted << std::endl; 
std::cout << "asio::error::invalid_argument " << asio::error::invalid_argument << std::endl; 
std::cout << "asio::error::message_size " << asio::error::message_size << std::endl; 
std::cout << "asio::error::name_too_long " << asio::error::name_too_long << std::endl; 
std::cout << "asio::error::network_down " << asio::error::network_down << std::endl; 
std::cout << "asio::error::network_reset " << asio::error::network_reset << std::endl; 
std::cout << "asio::error::network_unreachable " << asio::error::network_unreachable << std::endl; 
std::cout << "asio::error::no_descriptors " << asio::error::no_descriptors << std::endl; 
std::cout << "asio::error::no_buffer_space " << asio::error::no_buffer_space << std::endl; 
std::cout << "asio::error::no_memory " << asio::error::no_memory << std::endl; 
std::cout << "asio::error::no_permission " << asio::error::no_permission << std::endl; 
std::cout << "asio::error::no_protocol_option " << asio::error::no_protocol_option << std::endl; 
std::cout << "asio::error::not_connected " << asio::error::not_connected << std::endl; 
std::cout << "asio::error::not_socket " << asio::error::not_socket << std::endl; 
std::cout << "asio::error::operation_aborted " << asio::error::operation_aborted << std::endl; 
std::cout << "asio::error::operation_not_supported " << asio::error::operation_not_supported << std::endl; 
std::cout << "asio::error::shut_down " << asio::error::shut_down << std::endl; 
std::cout << "asio::error::timed_out " << asio::error::timed_out << std::endl; 
std::cout << "asio::error::try_again " << asio::error::try_again << std::endl; 
std::cout << "asio::error::would_block " << asio::error::would_block << std::endl;