Main Page
Namespaces
Namespace List
Namespace Members
All
Functions
Typedefs
Classes
Class List
Class Hierarchy
Class Members
All
Functions
Files
File List
File Members
All
Functions
Variables
Macros
include
ecl
io
poll.hpp
Go to the documentation of this file.
1
8
/*****************************************************************************
9
** Ifdefs
10
*****************************************************************************/
11
12
#ifndef ECL_IO_POLL_HPP_
13
#define ECL_IO_POLL_HPP_
14
15
/*****************************************************************************
16
** Includes
17
*****************************************************************************/
18
19
#include "
sockets.hpp
"
20
21
#ifdef ECL_IS_WIN32
22
// nothing special here.
23
#else
24
#include <poll.h>
25
#endif
26
27
/*****************************************************************************
28
** Macros
29
*****************************************************************************/
30
31
#ifdef ECL_IS_WIN32
32
#ifndef POLLRDNORM
33
#define POLLRDNORM 0x0100
/* mapped to read fds_set */
34
#endif
35
#ifndef POLLRDBAND
36
#define POLLRDBAND 0x0200
/* mapped to exception fds_set */
37
#endif
38
#ifndef POLLIN
39
#define POLLIN (POLLRDNORM | POLLRDBAND)
/* There is data to read. */
40
#endif
41
#ifndef POLLPRI
42
#define POLLPRI 0x0400
/* There is urgent data to read. */
43
#endif
44
45
#ifndef POLLWRNORM
46
#define POLLWRNORM 0x0010
/* mapped to write fds_set */
47
#endif
48
#ifndef POLLOUT
49
#define POLLOUT (POLLWRNORM)
/* Writing now will not block. */
50
#endif
51
#ifndef POLLWRBAND
52
#define POLLWRBAND 0x0020
/* mapped to write fds_set */
53
#endif
54
#ifndef POLLERR
55
#define POLLERR 0x0001
/* Error condition. */
56
#endif
57
#ifndef POLLHUP
58
#define POLLHUP 0x0002
/* Hung up. */
59
#endif
60
#ifndef POLLNVAL
61
#define POLLNVAL 0x0004
/* Invalid polling request. */
62
#endif
63
#else
64
// Nothing to see here!
65
#endif
66
67
/*****************************************************************************
68
** Namespaces
69
*****************************************************************************/
70
71
namespace
ecl
{
72
73
/*****************************************************************************
74
** Types
75
*****************************************************************************/
76
77
#ifdef ECL_IS_WIN32
78
/* poll emulation support */
79
typedef
struct
socket_pollfd
{
80
socket_descriptor
fd;
/* file descriptor */
81
short
events;
/* requested events */
82
short
revents;
/* returned events */
83
}
socket_pollfd
;
84
85
typedef
unsigned
long
int
nfds_t;
86
#else
87
typedef
struct
pollfd
socket_pollfd
;
88
typedef ::nfds_t
ndfs_t
;
89
#endif
90
91
92
ecl_io_PUBLIC
int
poll_sockets
(
socket_pollfd
*fds, nfds_t nfds,
int
timeout);
93
94
}
// namespace ecl
95
96
#endif
/* ECL_IO_POLL_HPP_ */
ecl::ndfs_t
::nfds_t ndfs_t
Definition:
poll.hpp:96
ecl::socket_descriptor
int socket_descriptor
Cross-platform typedef for a socket file descriptor.
Definition:
sockets.hpp:64
sockets.hpp
Cross platform socket api.
ecl::socket_pollfd
struct pollfd socket_pollfd
Definition:
poll.hpp:95
ecl_io_PUBLIC
#define ecl_io_PUBLIC
Definition:
macros.hpp:28
ecl::poll_sockets
ecl_io_PUBLIC int poll_sockets(socket_pollfd *fds, nfds_t nfds, int timeout)
Definition:
lib/poll.cpp:29
ecl
ecl_io
Author(s): Daniel Stonier
autogenerated on Wed Mar 2 2022 00:13:55