src/server/util/io.h

changeset 147
d050449c3b9e
parent 133
87b405d61f64
child 161
aadda87bad1b
child 172
5580517faafc
equal deleted inserted replaced
146:a9591a91c004 147:d050449c3b9e
40 40
41 #ifdef __cplusplus 41 #ifdef __cplusplus
42 extern "C" { 42 extern "C" {
43 #endif 43 #endif
44 44
45 #ifdef XP_UNIX
46 #define SYS_SOCKET int
47 #elif defined(XP_WIN32)
48 #define SYS_SOCKET SOCKET
49 #endif
50
45 typedef struct IOStream IOStream; 51 typedef struct IOStream IOStream;
46 typedef struct SysStream SysStream; 52 typedef struct SysStream SysStream;
47 typedef struct HttpStream HttpStream; 53 typedef struct HttpStream HttpStream;
48 54
49 typedef ssize_t(*io_write_f)(IOStream *, void *, size_t); 55 typedef ssize_t(*io_write_f)(IOStream *, void *, size_t);
65 struct SysStream { 71 struct SysStream {
66 IOStream st; 72 IOStream st;
67 #ifdef XP_UNIX 73 #ifdef XP_UNIX
68 int fd; 74 int fd;
69 #elif defined(XP_WIN32) 75 #elif defined(XP_WIN32)
70 SOCKET socket; 76 SOCKET fd;
71 #endif 77 #endif
72 }; 78 };
73 79
74 struct HttpStream { 80 struct HttpStream {
75 IOStream st; 81 IOStream st;
87 } SSLStream; 93 } SSLStream;
88 94
89 95
90 96
91 /* system stream */ 97 /* system stream */
92 IOStream* sysstream_new(pool_handle_t *pool, int fd); 98 IOStream* sysstream_new(pool_handle_t *pool, SYS_SOCKET fd);
93 99
94 ssize_t net_sys_write(SysStream *st, void *buf, size_t nbytes); 100 ssize_t net_sys_write(SysStream *st, void *buf, size_t nbytes);
95 ssize_t net_sys_writev(SysStream *st, struct iovec *iovec, int iovcnt); 101 ssize_t net_sys_writev(SysStream *st, struct iovec *iovec, int iovcnt);
96 ssize_t net_sys_read(SysStream *st, void *buf, size_t nbytes); 102 ssize_t net_sys_read(SysStream *st, void *buf, size_t nbytes);
97 ssize_t net_sys_sendfile(SysStream *st, sendfiledata *sfd); 103 ssize_t net_sys_sendfile(SysStream *st, sendfiledata *sfd);

mercurial