diff options
author | Igor Sysoev <igor@sysoev.ru> | 2017-05-31 15:26:45 +0300 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2017-05-31 15:26:45 +0300 |
commit | 5bc011afad76fe7576ef0e0ed7ca7eb5417cf338 (patch) | |
tree | 0db06be61c62ecabb5225f69688da8ab4424aa36 /src/nxt_router.h | |
parent | dee819daabe6e7ab462beac779ab0dfd7d648844 (diff) | |
download | unit-5bc011afad76fe7576ef0e0ed7ca7eb5417cf338.tar.gz unit-5bc011afad76fe7576ef0e0ed7ca7eb5417cf338.tar.bz2 |
Skeleton of router configuration and request processing.
Diffstat (limited to '')
-rw-r--r-- | src/nxt_router.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/nxt_router.h b/src/nxt_router.h new file mode 100644 index 00000000..d31a5964 --- /dev/null +++ b/src/nxt_router.h @@ -0,0 +1,78 @@ + +/* + * Copyright (C) Igor Sysoev + * Copyright (C) NGINX, Inc. + */ + +#ifndef _NXT_ROUTER_H_INCLUDED_ +#define _NXT_ROUTER_H_INCLUDED_ + + +#include <nxt_main.h> +#include <nxt_runtime.h> +#include <nxt_master_process.h> + + +typedef struct { + nxt_thread_spinlock_t lock; + nxt_queue_t engines; + + nxt_queue_t sockets; +} nxt_router_t; + + +typedef struct { + uint32_t count; + uint32_t threads; + nxt_router_t *router; + nxt_mem_pool_t *mem_pool; +} nxt_router_conf_t; + + +typedef struct { + nxt_event_engine_t *engine; + nxt_task_t task; + nxt_array_t *creating; /* of nxt_work_t */ + nxt_array_t *updating; /* of nxt_work_t */ + nxt_array_t *deleting; /* of nxt_work_t */ +} nxt_router_engine_conf_t; + + +typedef struct { + nxt_queue_t creating; + nxt_queue_t pending; + nxt_queue_t updating; + nxt_queue_t keeping; + nxt_queue_t deleting; + + uint32_t new_threads; + + nxt_array_t *engines; + nxt_router_conf_t *conf; + nxt_mem_pool_t *mem_pool; +} nxt_router_temp_conf_t; + + +typedef struct { + uint32_t count; + nxt_listen_socket_t listen; + nxt_queue_link_t link; + nxt_router_conf_t *router_conf; + + size_t header_buffer_size; + size_t large_header_buffer_size; + nxt_msec_t header_read_timeout; +} nxt_socket_conf_t; + + +typedef struct { + uint32_t count; + nxt_queue_link_t link; + nxt_event_engine_t *engine; + nxt_socket_conf_t *socket_conf; + + /* Modules configuraitons. */ +} nxt_socket_conf_joint_t; + + +#endif /* _NXT_ROUTER_H_INCLUDED_ */ |