Groonga 3.0.9 Source Code Document
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Pages
groonga
vendor
nginx-1.4.2
src
http
ngx_http_cache.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_CACHE_H_INCLUDED_
9
#define _NGX_HTTP_CACHE_H_INCLUDED_
10
11
12
#include <
ngx_config.h
>
13
#include <
ngx_core.h
>
14
#include <
ngx_http.h
>
15
16
17
#define NGX_HTTP_CACHE_MISS 1
18
#define NGX_HTTP_CACHE_BYPASS 2
19
#define NGX_HTTP_CACHE_EXPIRED 3
20
#define NGX_HTTP_CACHE_STALE 4
21
#define NGX_HTTP_CACHE_UPDATING 5
22
#define NGX_HTTP_CACHE_HIT 6
23
#define NGX_HTTP_CACHE_SCARCE 7
24
25
#define NGX_HTTP_CACHE_KEY_LEN 16
26
27
28
typedef
struct
{
29
ngx_uint_t
status
;
30
time_t
valid
;
31
}
ngx_http_cache_valid_t
;
32
33
34
typedef
struct
{
35
ngx_rbtree_node_t
node
;
36
ngx_queue_t
queue
;
37
38
u_char key[
NGX_HTTP_CACHE_KEY_LEN
39
-
sizeof
(
ngx_rbtree_key_t
)];
40
41
unsigned
count:20;
42
unsigned
uses:10;
43
unsigned
valid_msec:10;
44
unsigned
error
:10;
45
unsigned
exists:1;
46
unsigned
updating:1;
47
unsigned
deleting:1;
48
/* 11 unused bits */
49
50
ngx_file_uniq_t
uniq
;
51
time_t
expire
;
52
time_t
valid_sec
;
53
size_t
body_start
;
54
off_t
fs_size
;
55
}
ngx_http_file_cache_node_t
;
56
57
58
struct
ngx_http_cache_s
{
59
ngx_file_t
file
;
60
ngx_array_t
keys
;
61
uint32_t
crc32
;
62
u_char
key
[
NGX_HTTP_CACHE_KEY_LEN
];
63
64
ngx_file_uniq_t
uniq
;
65
time_t
valid_sec
;
66
time_t
last_modified
;
67
time_t
date
;
68
69
size_t
header_start
;
70
size_t
body_start
;
71
off_t
length
;
72
off_t
fs_size
;
73
74
ngx_uint_t
min_uses
;
75
ngx_uint_t
error
;
76
ngx_uint_t
valid_msec
;
77
78
ngx_buf_t
*
buf
;
79
80
ngx_http_file_cache_t
*
file_cache
;
81
ngx_http_file_cache_node_t
*
node
;
82
83
ngx_msec_t
lock_timeout
;
84
ngx_msec_t
wait_time
;
85
86
ngx_event_t
wait_event
;
87
88
unsigned
lock
:1;
89
unsigned
waiting
:1;
90
91
unsigned
updated
:1;
92
unsigned
updating
:1;
93
unsigned
exists
:1;
94
unsigned
temp_file
:1;
95
};
96
97
98
typedef
struct
{
99
time_t
valid_sec
;
100
time_t
last_modified
;
101
time_t
date
;
102
uint32_t
crc32
;
103
u_short
valid_msec
;
104
u_short
header_start
;
105
u_short
body_start
;
106
}
ngx_http_file_cache_header_t
;
107
108
109
typedef
struct
{
110
ngx_rbtree_t
rbtree
;
111
ngx_rbtree_node_t
sentinel
;
112
ngx_queue_t
queue
;
113
ngx_atomic_t
cold
;
114
ngx_atomic_t
loading
;
115
off_t
size
;
116
}
ngx_http_file_cache_sh_t
;
117
118
119
struct
ngx_http_file_cache_s
{
120
ngx_http_file_cache_sh_t
*
sh
;
121
ngx_slab_pool_t
*
shpool
;
122
123
ngx_path_t
*
path
;
124
125
off_t
max_size
;
126
size_t
bsize
;
127
128
time_t
inactive
;
129
130
ngx_uint_t
files
;
131
ngx_uint_t
loader_files
;
132
ngx_msec_t
last
;
133
ngx_msec_t
loader_sleep
;
134
ngx_msec_t
loader_threshold
;
135
136
ngx_shm_zone_t
*
shm_zone
;
137
};
138
139
140
ngx_int_t
ngx_http_file_cache_new
(
ngx_http_request_t
*r);
141
ngx_int_t
ngx_http_file_cache_create
(
ngx_http_request_t
*r);
142
void
ngx_http_file_cache_create_key
(
ngx_http_request_t
*r);
143
ngx_int_t
ngx_http_file_cache_open
(
ngx_http_request_t
*r);
144
void
ngx_http_file_cache_set_header
(
ngx_http_request_t
*r, u_char *buf);
145
void
ngx_http_file_cache_update
(
ngx_http_request_t
*r,
ngx_temp_file_t
*tf);
146
ngx_int_t
ngx_http_cache_send
(
ngx_http_request_t
*);
147
void
ngx_http_file_cache_free
(
ngx_http_cache_t
*c,
ngx_temp_file_t
*tf);
148
time_t
ngx_http_file_cache_valid
(
ngx_array_t
*cache_valid,
ngx_uint_t
status);
149
150
char
*
ngx_http_file_cache_set_slot
(
ngx_conf_t
*cf,
ngx_command_t
*cmd,
151
void
*conf);
152
char
*
ngx_http_file_cache_valid_set_slot
(
ngx_conf_t
*cf,
ngx_command_t
*cmd,
153
void
*conf);
154
155
156
extern
ngx_str_t
ngx_http_cache_status
[];
157
158
159
#endif
/* _NGX_HTTP_CACHE_H_INCLUDED_ */
Generated on Sun Nov 10 2013 09:49:08 for Groonga 3.0.9 Source Code Document by
1.8.1.2