Go to the documentation of this file.00001
00008
00009
00010
00011
00012 #ifndef ECL_IO_POLL_HPP_
00013 #define ECL_IO_POLL_HPP_
00014
00015
00016
00017
00018
00019 #include "sockets.hpp"
00020
00021 #ifdef ECL_IS_WIN32
00022
00023 #else
00024 #include <poll.h>
00025 #endif
00026
00027
00028
00029
00030
00031 #ifdef ECL_IS_WIN32
00032 #ifndef POLLRDNORM
00033 #define POLLRDNORM 0x0100
00034 #endif
00035 #ifndef POLLRDBAND
00036 #define POLLRDBAND 0x0200
00037 #endif
00038 #ifndef POLLIN
00039 #define POLLIN (POLLRDNORM | POLLRDBAND)
00040 #endif
00041 #ifndef POLLPRI
00042 #define POLLPRI 0x0400
00043 #endif
00044
00045 #ifndef POLLWRNORM
00046 #define POLLWRNORM 0x0010
00047 #endif
00048 #ifndef POLLOUT
00049 #define POLLOUT (POLLWRNORM)
00050 #endif
00051 #ifndef POLLWRBAND
00052 #define POLLWRBAND 0x0020
00053 #endif
00054 #ifndef POLLERR
00055 #define POLLERR 0x0001
00056 #endif
00057 #ifndef POLLHUP
00058 #define POLLHUP 0x0002
00059 #endif
00060 #ifndef POLLNVAL
00061 #define POLLNVAL 0x0004
00062 #endif
00063 #else
00064
00065 #endif
00066
00067
00068
00069
00070
00071 namespace ecl {
00072
00073
00074
00075
00076
00077 #ifdef ECL_IS_WIN32
00078
00079 typedef struct socket_pollfd {
00080 socket_descriptor fd;
00081 short events;
00082 short revents;
00083 } socket_pollfd;
00084
00085 typedef unsigned long int nfds_t;
00086 #else
00087 typedef struct pollfd socket_pollfd;
00088 typedef ::nfds_t ndfs_t;
00089 #endif
00090
00091
00092 ecl_io_PUBLIC int poll_sockets(socket_pollfd *fds, nfds_t nfds, int timeout);
00093
00094 }
00095
00096 #endif