19 #ifndef ECL_IO_SOCKETS_HPP_ 20 #define ECL_IO_SOCKETS_HPP_ 27 #include <ecl/config/ecl.hpp> 36 #elif defined(ECL_IS_POSIX) 37 #include <netinet/in.h> 40 #error("There is not a supporting sockets implementation on this platform (possibly needs extended ecl support).") 80 {
return "One of the arguments is invalid (usually a socket descriptor).";}
82 virtual const char* notSupportedError()
const 83 {
return "This version of winsock is not supported on this platform.";}
84 virtual const char* interruptedErrorString()
const 85 {
return "Interrupted by WSACancelBlockingCall.";}
86 virtual const char* notInitialisedErrorString()
const 87 {
return "The underlying winsock subsystem is not initialised (needs WSAStartup).";}
88 virtual const char* blockingErrorString()
const 89 {
return "Marked as non-blocking, but current configuration would block.";}
90 virtual const char* busyErrorString()
const 91 {
return "A blocking winsock operation is in progress.";}
92 virtual const char* systemFailureErrorString()
const 93 {
return "The network subsystem has failed.";}
94 #elif defined(ECL_IS_POSIX) 95 virtual const char* interruptedErrorString()
const 96 {
return "Interrupted by a signal or an io error.";}
97 virtual const char* argNotSupportedString()
const 98 {
return "The specified address family or protocol is not supported on this machine.";}
virtual const char * invalidArgErrorString() const
int socket_descriptor
Cross-platform typedef for a socket file descriptor.
ecl_io_PUBLIC SocketError init_sockets()
Initialise the socket subsystem.
ecl_io_PUBLIC SocketError close_socket(const socket_descriptor &sock)
Close a socket.
SocketError(const ErrorFlag &flag=UnknownError)
Configures the error class with the specified error flag.
ecl_io_PUBLIC SocketError shutdown_sockets()
Shutdown the socket subsystem.
Extends the generic error handler with socket specific error strings.