nxt_router.h (591:2061313c841b) nxt_router.h (630:a7f8c9b7a6af)
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#ifndef _NXT_ROUTER_H_INCLUDED_
8#define _NXT_ROUTER_H_INCLUDED_
9
10
11#include <nxt_main.h>
12#include <nxt_runtime.h>
13#include <nxt_main_process.h>
14
1
2/*
3 * Copyright (C) Igor Sysoev
4 * Copyright (C) NGINX, Inc.
5 */
6
7#ifndef _NXT_ROUTER_H_INCLUDED_
8#define _NXT_ROUTER_H_INCLUDED_
9
10
11#include <nxt_main.h>
12#include <nxt_runtime.h>
13#include <nxt_main_process.h>
14
15typedef struct nxt_http_request_s nxt_http_request_t;
15typedef struct nxt_http_request_s nxt_http_request_t;
16#include <nxt_application.h>
17
18
16#include <nxt_application.h>
17
18
19typedef struct nxt_router_access_log_s nxt_router_access_log_t;
20
21
19typedef struct {
22typedef struct {
20 nxt_thread_spinlock_t lock;
21 nxt_queue_t engines;
23 nxt_thread_spinlock_t lock;
24 nxt_queue_t engines;
22
25
23 nxt_queue_t sockets; /* of nxt_socket_conf_t */
24 nxt_queue_t apps; /* of nxt_app_t */
26 nxt_queue_t sockets; /* of nxt_socket_conf_t */
27 nxt_queue_t apps; /* of nxt_app_t */
28
29 nxt_router_access_log_t *access_log;
25} nxt_router_t;
26
27
28typedef struct {
30} nxt_router_t;
31
32
33typedef struct {
29 uint32_t count;
30 uint32_t threads;
31 nxt_router_t *router;
32 nxt_mp_t *mem_pool;
34 uint32_t count;
35 uint32_t threads;
36 nxt_router_t *router;
37 nxt_mp_t *mem_pool;
38
39 nxt_router_access_log_t *access_log;
33} nxt_router_conf_t;
34
35
36typedef struct {
37 nxt_event_engine_t *engine;
38 nxt_work_t *jobs;
39
40 enum {

--- 111 unchanged lines hidden (view full) ---

152 nxt_queue_link_t link;
153 nxt_event_engine_t *engine;
154 nxt_socket_conf_t *socket_conf;
155
156 /* Modules configuraitons. */
157} nxt_socket_conf_joint_t;
158
159
40} nxt_router_conf_t;
41
42
43typedef struct {
44 nxt_event_engine_t *engine;
45 nxt_work_t *jobs;
46
47 enum {

--- 111 unchanged lines hidden (view full) ---

159 nxt_queue_link_t link;
160 nxt_event_engine_t *engine;
161 nxt_socket_conf_t *socket_conf;
162
163 /* Modules configuraitons. */
164} nxt_socket_conf_joint_t;
165
166
167struct nxt_router_access_log_s {
168 void (*handler)(nxt_task_t *task, nxt_http_request_t *r,
169 nxt_router_access_log_t *access_log);
170 nxt_fd_t fd;
171 nxt_str_t path;
172 uint32_t count;
173};
174
175
160void nxt_router_new_port_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg);
161void nxt_router_conf_data_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg);
162void nxt_router_remove_pid_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg);
163
164void nxt_router_process_http_request(nxt_task_t *task, nxt_app_parse_ctx_t *ar);
165void nxt_router_app_port_close(nxt_task_t *task, nxt_port_t *port);
166void nxt_router_app_use(nxt_task_t *task, nxt_app_t *app, int i);
167
168
169#endif /* _NXT_ROUTER_H_INCLUDED_ */
176void nxt_router_new_port_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg);
177void nxt_router_conf_data_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg);
178void nxt_router_remove_pid_handler(nxt_task_t *task, nxt_port_recv_msg_t *msg);
179
180void nxt_router_process_http_request(nxt_task_t *task, nxt_app_parse_ctx_t *ar);
181void nxt_router_app_port_close(nxt_task_t *task, nxt_port_t *port);
182void nxt_router_app_use(nxt_task_t *task, nxt_app_t *app, int i);
183
184
185#endif /* _NXT_ROUTER_H_INCLUDED_ */