xref: /unit/src/nxt_application.h (revision 0)
1*0Sigor@sysoev.ru 
2*0Sigor@sysoev.ru /*
3*0Sigor@sysoev.ru  * Copyright (C) Valentin V. Bartenev
4*0Sigor@sysoev.ru  * Copyright (C) NGINX, Inc.
5*0Sigor@sysoev.ru  */
6*0Sigor@sysoev.ru 
7*0Sigor@sysoev.ru #ifndef _NXT_APPLICATION_H_INCLUDED_
8*0Sigor@sysoev.ru #define _NXT_APPLICATION_H_INCLUDED_
9*0Sigor@sysoev.ru 
10*0Sigor@sysoev.ru 
11*0Sigor@sysoev.ru typedef struct {
12*0Sigor@sysoev.ru     nxt_str_t                  name;
13*0Sigor@sysoev.ru     nxt_str_t                  value;
14*0Sigor@sysoev.ru } nxt_app_header_field_t;
15*0Sigor@sysoev.ru 
16*0Sigor@sysoev.ru 
17*0Sigor@sysoev.ru typedef struct {
18*0Sigor@sysoev.ru     nxt_str_t                  method;
19*0Sigor@sysoev.ru     nxt_str_t                  path;
20*0Sigor@sysoev.ru     nxt_str_t                  version;
21*0Sigor@sysoev.ru     nxt_uint_t                 fields_num;
22*0Sigor@sysoev.ru     nxt_app_header_field_t     *fields;
23*0Sigor@sysoev.ru 
24*0Sigor@sysoev.ru     nxt_str_t                  *content_length;
25*0Sigor@sysoev.ru     nxt_str_t                  *content_type;
26*0Sigor@sysoev.ru } nxt_app_request_header_t;
27*0Sigor@sysoev.ru 
28*0Sigor@sysoev.ru 
29*0Sigor@sysoev.ru typedef struct {
30*0Sigor@sysoev.ru     nxt_event_engine_t         *engine;
31*0Sigor@sysoev.ru     nxt_mem_pool_t             *mem_pool;
32*0Sigor@sysoev.ru     nxt_event_conn_t           *event_conn;
33*0Sigor@sysoev.ru     nxt_log_t                  *log;
34*0Sigor@sysoev.ru 
35*0Sigor@sysoev.ru     nxt_buf_t                  *output_buf;
36*0Sigor@sysoev.ru 
37*0Sigor@sysoev.ru     nxt_app_request_header_t   header;
38*0Sigor@sysoev.ru     nxt_str_t                  body_preread;
39*0Sigor@sysoev.ru     off_t                      body_rest;
40*0Sigor@sysoev.ru     void                       *ctx;
41*0Sigor@sysoev.ru } nxt_app_request_t;
42*0Sigor@sysoev.ru 
43*0Sigor@sysoev.ru 
44*0Sigor@sysoev.ru typedef struct {
45*0Sigor@sysoev.ru     nxt_int_t                  (*init)(nxt_thread_t *thr);
46*0Sigor@sysoev.ru     nxt_int_t                  (*start)(nxt_app_request_t *r);
47*0Sigor@sysoev.ru     nxt_int_t                  (*header)(nxt_app_request_t *r,
48*0Sigor@sysoev.ru                                     nxt_app_header_field_t *field);
49*0Sigor@sysoev.ru     nxt_int_t                  (*run)(nxt_app_request_t *r);
50*0Sigor@sysoev.ru } nxt_application_module_t;
51*0Sigor@sysoev.ru 
52*0Sigor@sysoev.ru 
53*0Sigor@sysoev.ru extern nxt_application_module_t  nxt_python_module;
54*0Sigor@sysoev.ru 
55*0Sigor@sysoev.ru 
56*0Sigor@sysoev.ru nxt_int_t nxt_app_http_read_body(nxt_app_request_t *r, u_char *data, size_t len);
57*0Sigor@sysoev.ru nxt_int_t nxt_app_write(nxt_app_request_t *r, const u_char *data, size_t len);
58*0Sigor@sysoev.ru 
59*0Sigor@sysoev.ru 
60*0Sigor@sysoev.ru #endif /* _NXT_APPLICATION_H_INCLIDED_ */
61