Annotation of embedaddon/nginx/src/event/ngx_event_pipe.h, revision 1.1.1.1
1.1 misho 1:
2: /*
3: * Copyright (C) Igor Sysoev
4: * Copyright (C) Nginx, Inc.
5: */
6:
7:
8: #ifndef _NGX_EVENT_PIPE_H_INCLUDED_
9: #define _NGX_EVENT_PIPE_H_INCLUDED_
10:
11:
12: #include <ngx_config.h>
13: #include <ngx_core.h>
14: #include <ngx_event.h>
15:
16:
17: typedef struct ngx_event_pipe_s ngx_event_pipe_t;
18:
19: typedef ngx_int_t (*ngx_event_pipe_input_filter_pt)(ngx_event_pipe_t *p,
20: ngx_buf_t *buf);
21: typedef ngx_int_t (*ngx_event_pipe_output_filter_pt)(void *data,
22: ngx_chain_t *chain);
23:
24:
25: struct ngx_event_pipe_s {
26: ngx_connection_t *upstream;
27: ngx_connection_t *downstream;
28:
29: ngx_chain_t *free_raw_bufs;
30: ngx_chain_t *in;
31: ngx_chain_t **last_in;
32:
33: ngx_chain_t *out;
34: ngx_chain_t *free;
35: ngx_chain_t *busy;
36:
37: /*
38: * the input filter i.e. that moves HTTP/1.1 chunks
39: * from the raw bufs to an incoming chain
40: */
41:
42: ngx_event_pipe_input_filter_pt input_filter;
43: void *input_ctx;
44:
45: ngx_event_pipe_output_filter_pt output_filter;
46: void *output_ctx;
47:
48: unsigned read:1;
49: unsigned cacheable:1;
50: unsigned single_buf:1;
51: unsigned free_bufs:1;
52: unsigned upstream_done:1;
53: unsigned upstream_error:1;
54: unsigned upstream_eof:1;
55: unsigned upstream_blocked:1;
56: unsigned downstream_done:1;
57: unsigned downstream_error:1;
58: unsigned cyclic_temp_file:1;
59:
60: ngx_int_t allocated;
61: ngx_bufs_t bufs;
62: ngx_buf_tag_t tag;
63:
64: ssize_t busy_size;
65:
66: off_t read_length;
67: off_t length;
68:
69: off_t max_temp_file_size;
70: ssize_t temp_file_write_size;
71:
72: ngx_msec_t read_timeout;
73: ngx_msec_t send_timeout;
74: ssize_t send_lowat;
75:
76: ngx_pool_t *pool;
77: ngx_log_t *log;
78:
79: ngx_chain_t *preread_bufs;
80: size_t preread_size;
81: ngx_buf_t *buf_to_file;
82:
83: ngx_temp_file_t *temp_file;
84:
85: /* STUB */ int num;
86: };
87:
88:
89: ngx_int_t ngx_event_pipe(ngx_event_pipe_t *p, ngx_int_t do_write);
90: ngx_int_t ngx_event_pipe_copy_input_filter(ngx_event_pipe_t *p, ngx_buf_t *buf);
91: ngx_int_t ngx_event_pipe_add_free_buf(ngx_event_pipe_t *p, ngx_buf_t *b);
92:
93:
94: #endif /* _NGX_EVENT_PIPE_H_INCLUDED_ */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>