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_ */