Groonga 3.0.9 Source Code Document
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ngx_http_variables.h
Go to the documentation of this file.
1 
2 /*
3  * Copyright (C) Igor Sysoev
4  * Copyright (C) Nginx, Inc.
5  */
6 
7 
8 #ifndef _NGX_HTTP_VARIABLES_H_INCLUDED_
9 #define _NGX_HTTP_VARIABLES_H_INCLUDED_
10 
11 
12 #include <ngx_config.h>
13 #include <ngx_core.h>
14 #include <ngx_http.h>
15 
16 
18 
19 #define ngx_http_variable(v) { sizeof(v) - 1, 1, 0, 0, 0, (u_char *) v }
20 
22 
24  ngx_http_variable_value_t *v, uintptr_t data);
26  ngx_http_variable_value_t *v, uintptr_t data);
27 
28 
29 #define NGX_HTTP_VAR_CHANGEABLE 1
30 #define NGX_HTTP_VAR_NOCACHEABLE 2
31 #define NGX_HTTP_VAR_INDEXED 4
32 #define NGX_HTTP_VAR_NOHASH 8
33 
34 
36  ngx_str_t name; /* must be first to build the hash */
39  uintptr_t data;
42 };
43 
44 
46  ngx_uint_t flags);
52 
54  ngx_str_t *name, ngx_uint_t key);
55 
57  ngx_str_t *var, ngx_list_part_t *part, size_t prefix);
58 
59 
60 #if (NGX_PCRE)
61 
62 typedef struct {
63  ngx_uint_t capture;
65 } ngx_http_regex_variable_t;
66 
67 
68 typedef struct {
69  ngx_regex_t *regex;
70  ngx_uint_t ncaptures;
71  ngx_http_regex_variable_t *variables;
72  ngx_uint_t nvariables;
73  ngx_str_t name;
74 } ngx_http_regex_t;
75 
76 
77 typedef struct {
78  ngx_http_regex_t *regex;
79  void *value;
80 } ngx_http_map_regex_t;
81 
82 
83 ngx_http_regex_t *ngx_http_regex_compile(ngx_conf_t *cf,
85 ngx_int_t ngx_http_regex_exec(ngx_http_request_t *r, ngx_http_regex_t *re,
86  ngx_str_t *s);
87 
88 #endif
89 
90 
91 typedef struct {
93 #if (NGX_PCRE)
94  ngx_http_map_regex_t *regex;
95  ngx_uint_t nregex;
96 #endif
98 
99 
101  ngx_str_t *match);
102 
103 
106 
107 
110 
111 
112 #endif /* _NGX_HTTP_VARIABLES_H_INCLUDED_ */