Mercurial > hg > nginx-quic
comparison src/event/ngx_event.h @ 91:637625a2acdb
nginx-0.0.1-2003-05-19-20:39:14 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 19 May 2003 16:39:14 +0000 |
parents | 37530da31268 |
children | 19cc647ecd91 |
comparison
equal
deleted
inserted
replaced
90:37530da31268 | 91:637625a2acdb |
---|---|
7 #include <ngx_time.h> | 7 #include <ngx_time.h> |
8 #include <ngx_socket.h> | 8 #include <ngx_socket.h> |
9 #include <ngx_log.h> | 9 #include <ngx_log.h> |
10 #include <ngx_alloc.h> | 10 #include <ngx_alloc.h> |
11 #include <ngx_array.h> | 11 #include <ngx_array.h> |
12 #include <ngx_conf_file.h> | |
13 | |
14 | |
12 | 15 |
13 /* STUB */ | 16 /* STUB */ |
14 #define NGX_LOWAT 10000 | 17 #define NGX_LOWAT 10000 |
15 | 18 |
16 #define NGX_INVALID_INDEX 0x80000000 | 19 #define NGX_INVALID_INDEX 0x80000000 |
20 | |
17 | 21 |
18 typedef struct ngx_event_s ngx_event_t; | 22 typedef struct ngx_event_s ngx_event_t; |
19 | 23 |
20 #if (HAVE_IOCP) | 24 #if (HAVE_IOCP) |
21 typedef struct { | 25 typedef struct { |
139 NGX_IOCP_EVENT_N, | 143 NGX_IOCP_EVENT_N, |
140 #endif | 144 #endif |
141 NGX_DUMMY_EVENT_N /* avoid comma at end of enumerator list */ | 145 NGX_DUMMY_EVENT_N /* avoid comma at end of enumerator list */ |
142 } ngx_event_type_e ; | 146 } ngx_event_type_e ; |
143 | 147 |
148 | |
149 | |
144 typedef struct { | 150 typedef struct { |
145 int (*add)(ngx_event_t *ev, int event, u_int flags); | 151 int (*add)(ngx_event_t *ev, int event, u_int flags); |
146 int (*del)(ngx_event_t *ev, int event, u_int flags); | 152 int (*del)(ngx_event_t *ev, int event, u_int flags); |
147 void (*timer)(ngx_event_t *ev, ngx_msec_t timer); | 153 |
148 int (*process)(ngx_log_t *log); | 154 int (*enable)(ngx_event_t *ev, int event, u_int flags); |
149 int (*read)(ngx_event_t *ev, char *buf, size_t size); | 155 int (*disable)(ngx_event_t *ev, int event, u_int flags); |
150 /* | 156 |
151 int (*write)(ngx_event_t *ev, char *buf, size_t size); | 157 int (*add_conn)(ngx_connection_t *c); |
152 */ | 158 int (*del_conn)(ngx_connection_t *c); |
159 | |
160 int (*process)(ngx_log_t *log); | |
161 int (*init)(ngx_log_t *log); | |
162 void (*done)(ngx_log_t *log); | |
153 } ngx_event_actions_t; | 163 } ngx_event_actions_t; |
154 | 164 |
155 | 165 |
156 /* The event filter requires to read/write the whole data - | 166 /* The event filter requires to read/write the whole data - |
157 select, poll, /dev/poll, kqueue. */ | 167 select, poll, /dev/poll, kqueue. */ |
271 #if (HAVE_IOCP_EVENT) | 281 #if (HAVE_IOCP_EVENT) |
272 #define ngx_event_recv ngx_event_wsarecv | 282 #define ngx_event_recv ngx_event_wsarecv |
273 #elif (HAVE_AIO_EVENT) | 283 #elif (HAVE_AIO_EVENT) |
274 #define ngx_event_recv ngx_event_aio_read | 284 #define ngx_event_recv ngx_event_aio_read |
275 #else | 285 #else |
276 #define ngx_event_recv ngx_event_recv_core | 286 #define ngx_event_recv ngx_io.recv |
287 #define ngx_write_chain ngx_io.send_chain | |
277 #endif | 288 #endif |
278 | 289 |
279 #endif | 290 #endif |
280 | 291 |
281 #define ngx_del_timer ngx_event_del_timer | 292 #define ngx_del_timer ngx_event_del_timer |
299 | 310 |
300 | 311 |
301 #define NGX_EVENT_MODULE_TYPE 0x544E5645 /* "EVNT" */ | 312 #define NGX_EVENT_MODULE_TYPE 0x544E5645 /* "EVNT" */ |
302 | 313 |
303 #define NGX_EVENT_CONF 0x00200000 | 314 #define NGX_EVENT_CONF 0x00200000 |
315 #define NGX_EVENT_MODULE 0 | |
316 | |
317 | |
318 typedef struct { | |
319 int connections; | |
320 int type; | |
321 int timer_queues; | |
322 } ngx_event_conf_t; | |
323 | |
324 | |
325 typedef struct { | |
326 int index; | |
327 ngx_str_t *name; | |
328 | |
329 void *(*create_conf)(ngx_pool_t *p); | |
330 char *(*init_conf)(ngx_pool_t *p, void *conf); | |
331 | |
332 ngx_event_actions_t actions; | |
333 } ngx_event_module_t; | |
334 | |
335 | |
336 extern ngx_module_t ngx_events_module; | |
337 extern ngx_event_module_t ngx_event_module_ctx; | |
338 | |
339 | |
340 #define ngx_event_get_conf(module) \ | |
341 (*(ngx_get_conf(ngx_events_module))) [module.index]; | |
304 | 342 |
305 | 343 |
306 | 344 |
307 void ngx_event_accept(ngx_event_t *ev); | 345 void ngx_event_accept(ngx_event_t *ev); |
308 | 346 |
309 | 347 |
310 ssize_t ngx_event_recv_core(ngx_connection_t *c, char *buf, size_t size); | 348 ssize_t ngx_event_recv_core(ngx_connection_t *c, char *buf, size_t size); |
311 int ngx_event_close_connection(ngx_event_t *ev); | 349 int ngx_event_close_connection(ngx_event_t *ev); |
312 | 350 |
313 | 351 |
314 void ngx_pre_thread(ngx_array_t *ls, ngx_pool_t *pool, ngx_log_t *log); | 352 int ngx_pre_thread(ngx_array_t *ls, ngx_pool_t *pool, ngx_log_t *log); |
315 void ngx_worker(ngx_log_t *log); | 353 void ngx_worker(ngx_log_t *log); |
316 | 354 |
317 | 355 |
356 #include <ngx_event_timer.h> | |
357 | |
358 | |
318 #endif /* _NGX_EVENT_H_INCLUDED_ */ | 359 #endif /* _NGX_EVENT_H_INCLUDED_ */ |