#ifndef _NGX_HTTP_VARIABLES_H_INCLUDED_
#define _NGX_HTTP_VARIABLES_H_INCLUDED_
#include <ngx_config.h>
#include <ngx_core.h>
#include <ngx_http.h>
ngx_http_variable_value_t;
#define ngx_http_variable(v) …
ngx_http_variable_t;
ngx_http_set_variable_pt;
ngx_http_get_variable_pt;
#define NGX_HTTP_VAR_CHANGEABLE …
#define NGX_HTTP_VAR_NOCACHEABLE …
#define NGX_HTTP_VAR_INDEXED …
#define NGX_HTTP_VAR_NOHASH …
#define NGX_HTTP_VAR_WEAK …
#define NGX_HTTP_VAR_PREFIX …
struct ngx_http_variable_s { … };
#define ngx_http_null_variable …
ngx_http_variable_t *ngx_http_add_variable(ngx_conf_t *cf, ngx_str_t *name,
ngx_uint_t flags);
ngx_int_t ngx_http_get_variable_index(ngx_conf_t *cf, ngx_str_t *name);
ngx_http_variable_value_t *ngx_http_get_indexed_variable(ngx_http_request_t *r,
ngx_uint_t index);
ngx_http_variable_value_t *ngx_http_get_flushed_variable(ngx_http_request_t *r,
ngx_uint_t index);
ngx_http_variable_value_t *ngx_http_get_variable(ngx_http_request_t *r,
ngx_str_t *name, ngx_uint_t key);
ngx_int_t ngx_http_variable_unknown_header(ngx_http_request_t *r,
ngx_http_variable_value_t *v, ngx_str_t *var, ngx_list_part_t *part,
size_t prefix);
#if (NGX_PCRE)
ngx_http_regex_variable_t;
ngx_http_regex_t;
ngx_http_map_regex_t;
ngx_http_regex_t *ngx_http_regex_compile(ngx_conf_t *cf,
ngx_regex_compile_t *rc);
ngx_int_t ngx_http_regex_exec(ngx_http_request_t *r, ngx_http_regex_t *re,
ngx_str_t *s);
#endif
ngx_http_map_t;
void *ngx_http_map_find(ngx_http_request_t *r, ngx_http_map_t *map,
ngx_str_t *match);
ngx_int_t ngx_http_variables_add_core_vars(ngx_conf_t *cf);
ngx_int_t ngx_http_variables_init_vars(ngx_conf_t *cf);
extern ngx_http_variable_value_t ngx_http_variable_null_value;
extern ngx_http_variable_value_t ngx_http_variable_true_value;
#endif