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