.. _program_listing_file__tmp_ws_src_ecl_core_ecl_devices_include_ecl_devices_detail_socket_error_handler_pos.hpp: Program Listing for File socket_error_handler_pos.hpp ===================================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/ecl_core/ecl_devices/include/ecl/devices/detail/socket_error_handler_pos.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /***************************************************************************** ** Ifdefs *****************************************************************************/ #ifndef ECL_DEVICES_SOCKET_ERROR_HANDLER_POS_HPP_ #define ECL_DEVICES_SOCKET_ERROR_HANDLER_POS_HPP_ /***************************************************************************** ** Cross platform *****************************************************************************/ #include #ifndef ECL_IS_APPLE #ifdef ECL_IS_POSIX /***************************************************************************** ** Includes *****************************************************************************/ #include #include #include #include // gethostbyname /***************************************************************************** ** Namespaces *****************************************************************************/ namespace ecl { namespace devices { /***************************************************************************** ** Methods *****************************************************************************/ inline ecl::Error socket_error() { switch( errno ) { case ( EACCES ) : return ecl::Error(ecl::OpenError); case ( EAFNOSUPPORT): return ecl::Error(ecl::NotSupportedError); case ( EINVAL ) : return ecl::Error(ecl::InvalidArgError); case ( EMFILE ) : return ecl::Error(ecl::OutOfRangeError); case ( ENFILE ) : return ecl::Error(ecl::OutOfResourcesError); case ( ENOBUFS ) : return ecl::Error(ecl::MemoryError); case ( ENOMEM ) : return ecl::Error(ecl::MemoryError); case ( EPROTONOSUPPORT ) : return ecl::Error(ecl::NotSupportedError); default : return ecl::Error(UnknownError); } } inline ecl::Error bind_error() { switch( errno ) { case ( EACCES ) : return ecl::Error(ecl::PermissionsError); case ( EADDRINUSE ) : return ecl::Error(ecl::BusyError); case ( EBADF ) : return ecl::Error(ecl::InvalidObjectError); case ( EINVAL ) : return ecl::Error(ecl::BusyError); case ( ENOTSOCK ) : return ecl::Error(ecl::InvalidObjectError); case ( EADDRNOTAVAIL ) : return ecl::Error(ecl::InvalidObjectError); case ( EFAULT ) : return ecl::Error(ecl::OutOfRangeError); case ( ELOOP ) : return ecl::Error(ecl::SystemFailureError); case ( ENAMETOOLONG ) : return ecl::Error(ecl::InvalidArgError); case ( ENOENT ) : return ecl::Error(ecl::InvalidObjectError); case ( ENOMEM ) : return ecl::Error(ecl::MemoryError); case ( ENOTDIR ) : return ecl::Error(ecl::InvalidArgError); case ( EROFS ) : return ecl::Error(ecl::PermissionsError); default : return ecl::Error(UnknownError); } } inline ecl::Error accept_error() { switch( errno ) { case ( EWOULDBLOCK ) : return ecl::Error(ecl::BlockingError); case ( EBADF ) : return ecl::Error(ecl::InvalidObjectError); case ( ECONNABORTED ): return ecl::Error(ecl::InterruptedError); case ( EINTR ) : return ecl::Error(ecl::InterruptedError); case ( EINVAL ) : return ecl::Error(ecl::UsageError); case ( EMFILE ) : return ecl::Error(ecl::OutOfResourcesError); case ( ENFILE ) : return ecl::Error(ecl::OutOfResourcesError); case ( ENOTSOCK ) : return ecl::Error(ecl::InvalidObjectError); case ( EOPNOTSUPP ) : return ecl::Error(ecl::InvalidObjectError); case ( EFAULT ) : return ecl::Error(ecl::PermissionsError); case ( ENOBUFS ) : return ecl::Error(ecl::MemoryError); case ( ENOMEM ) : return ecl::Error(ecl::MemoryError); case ( EPROTO ) : return ecl::Error(ecl::InvalidArgError); case ( EPERM ) : return ecl::Error(ecl::PermissionsError); default : return ecl::Error(UnknownError); } } inline ecl::Error receive_error() { switch( errno ) { case ( EAGAIN || EWOULDBLOCK ) : return ecl::Error(ecl::InterruptedError); case ( EBADF ) : return ecl::Error(ecl::InvalidObjectError); case ( ECONNREFUSED) : return ecl::Error(ecl::ConnectionError); case ( EFAULT ) : return ecl::Error(ecl::SystemFailureError); case ( EINTR ) : return ecl::Error(ecl::InterruptedError); case ( EINVAL ) : return ecl::Error(ecl::InvalidArgError); case ( ENOMEM ) : return ecl::Error(ecl::MemoryError); case ( ENOTCONN ) : return ecl::Error(ecl::ConnectionError); case ( ENOTSOCK ) : return ecl::Error(ecl::InvalidObjectError); default : return ecl::Error(UnknownError); } } inline ecl::Error ioctl_error() { switch( errno ) { case ( EBADF ) : return ecl::Error(ecl::InvalidObjectError); case ( EFAULT ) : return ecl::Error(ecl::OutOfRangeError); case ( EINVAL ) : return ecl::Error(ecl::InvalidArgError); case ( ENOTTY ) : return ecl::Error(ecl::InvalidObjectError); default : return ecl::Error(UnknownError); } } inline ecl::Error send_error() { switch( errno ) { case ( EAGAIN || EWOULDBLOCK ) : return ecl::Error(ecl::BlockingError); case ( EWOULDBLOCK ) : return ecl::Error(ecl::BlockingError); case ( EACCES ) : return ecl::Error(ecl::PermissionsError); case ( EBADF ) : return ecl::Error(ecl::InvalidObjectError); case ( ECONNRESET ) : return ecl::Error(ecl::InterruptedError); case ( EFAULT ) : return ecl::Error(ecl::SystemFailureError); case ( EINTR ) : return ecl::Error(ecl::InterruptedError); case ( EINVAL ) : return ecl::Error(ecl::InvalidArgError); case ( EISCONN ) : return ecl::Error(ecl::ConnectionError); case ( EMSGSIZE ) : return ecl::Error(ecl::WriteError); case ( ENOBUFS ) : return ecl::Error(ecl::OutOfResourcesError); case ( ENOMEM ) : return ecl::Error(ecl::MemoryError); case ( ENOTCONN ) : return ecl::Error(ecl::ConnectionError); case ( ENOTSOCK ) : return ecl::Error(ecl::InvalidObjectError); case ( EOPNOTSUPP ) : return ecl::Error(ecl::NotSupportedError); case ( EPIPE ) : return ecl::Error(ecl::InterruptedError); default : return ecl::Error(UnknownError); } } inline ecl::Error gethostbyname_error() { switch( h_errno ) { case ( HOST_NOT_FOUND ) : return ecl::Error(ecl::ConnectionError); case ( NO_ADDRESS ) : return ecl::Error(ecl::InvalidArgError); case ( NO_RECOVERY ) : return ecl::Error(ecl::UnknownError); default : return ecl::Error(ecl::UnknownError); } } inline ecl::Error connection_error() { switch( errno ) { case ( ( EACCES ) || ( EPERM ) ): return ecl::Error(ecl::PermissionsError); case ( EADDRINUSE ) : return ecl::Error(ecl::BusyError); case ( EAFNOSUPPORT ): return ecl::Error(ecl::NotSupportedError); case ( EAGAIN ) : return ecl::Error(ecl::OutOfResourcesError); case ( EALREADY ) : return ecl::Error(ecl::BlockingError); case ( EBADF ) : return ecl::Error(ecl::InvalidObjectError); case ( ECONNREFUSED ): return ecl::Error(ecl::ConnectionRefusedError); case ( EFAULT ) : return ecl::Error(ecl::OutOfRangeError); case ( EINPROGRESS ) : return ecl::Error(ecl::BlockingError); case ( EINTR ) : return ecl::Error(ecl::InterruptedError); case ( EISCONN ) : return ecl::Error(ecl::ConnectionError); case ( ENETUNREACH ) : return ecl::Error(ecl::ConfigurationError); case ( ENOTSOCK ) : return ecl::Error(ecl::InvalidObjectError); case ( ETIMEDOUT ) : return ecl::Error(ecl::TimeOutError); default : return ecl::Error(ecl::UnknownError); } } } // namespace devices } // namespace ecl #endif /* ECL_IS_POSIX */ #endif /* !ECL_IS_APPLE */ #endif /* ECL_DEVICES_SOCKET_ERROR_HANDLER_POS_HPP_ */