xref: /unit/src/nxt_application.h (revision 20)
10Sigor@sysoev.ru 
20Sigor@sysoev.ru /*
30Sigor@sysoev.ru  * Copyright (C) Valentin V. Bartenev
40Sigor@sysoev.ru  * Copyright (C) NGINX, Inc.
50Sigor@sysoev.ru  */
60Sigor@sysoev.ru 
70Sigor@sysoev.ru #ifndef _NXT_APPLICATION_H_INCLUDED_
80Sigor@sysoev.ru #define _NXT_APPLICATION_H_INCLUDED_
90Sigor@sysoev.ru 
100Sigor@sysoev.ru 
110Sigor@sysoev.ru typedef struct {
120Sigor@sysoev.ru     nxt_str_t                  name;
130Sigor@sysoev.ru     nxt_str_t                  value;
140Sigor@sysoev.ru } nxt_app_header_field_t;
150Sigor@sysoev.ru 
160Sigor@sysoev.ru 
170Sigor@sysoev.ru typedef struct {
180Sigor@sysoev.ru     nxt_str_t                  method;
190Sigor@sysoev.ru     nxt_str_t                  path;
200Sigor@sysoev.ru     nxt_str_t                  version;
210Sigor@sysoev.ru     nxt_uint_t                 fields_num;
220Sigor@sysoev.ru     nxt_app_header_field_t     *fields;
230Sigor@sysoev.ru 
240Sigor@sysoev.ru     nxt_str_t                  *content_length;
250Sigor@sysoev.ru     nxt_str_t                  *content_type;
260Sigor@sysoev.ru } nxt_app_request_header_t;
270Sigor@sysoev.ru 
280Sigor@sysoev.ru 
290Sigor@sysoev.ru typedef struct {
300Sigor@sysoev.ru     nxt_event_engine_t         *engine;
310Sigor@sysoev.ru     nxt_mem_pool_t             *mem_pool;
320Sigor@sysoev.ru     nxt_event_conn_t           *event_conn;
330Sigor@sysoev.ru     nxt_log_t                  *log;
340Sigor@sysoev.ru 
350Sigor@sysoev.ru     nxt_buf_t                  *output_buf;
360Sigor@sysoev.ru 
370Sigor@sysoev.ru     nxt_app_request_header_t   header;
380Sigor@sysoev.ru     nxt_str_t                  body_preread;
390Sigor@sysoev.ru     off_t                      body_rest;
400Sigor@sysoev.ru     void                       *ctx;
410Sigor@sysoev.ru } nxt_app_request_t;
420Sigor@sysoev.ru 
430Sigor@sysoev.ru 
440Sigor@sysoev.ru typedef struct {
450Sigor@sysoev.ru     nxt_int_t                  (*init)(nxt_thread_t *thr);
460Sigor@sysoev.ru     nxt_int_t                  (*start)(nxt_app_request_t *r);
470Sigor@sysoev.ru     nxt_int_t                  (*header)(nxt_app_request_t *r,
480Sigor@sysoev.ru                                     nxt_app_header_field_t *field);
490Sigor@sysoev.ru     nxt_int_t                  (*run)(nxt_app_request_t *r);
500Sigor@sysoev.ru } nxt_application_module_t;
510Sigor@sysoev.ru 
520Sigor@sysoev.ru 
530Sigor@sysoev.ru extern nxt_application_module_t  nxt_python_module;
540Sigor@sysoev.ru 
550Sigor@sysoev.ru 
56*20Sigor@sysoev.ru nxt_int_t nxt_app_http_read_body(nxt_app_request_t *r, u_char *data,
57*20Sigor@sysoev.ru     size_t len);
580Sigor@sysoev.ru nxt_int_t nxt_app_write(nxt_app_request_t *r, const u_char *data, size_t len);
590Sigor@sysoev.ru 
600Sigor@sysoev.ru 
610Sigor@sysoev.ru #endif /* _NXT_APPLICATION_H_INCLIDED_ */
62