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
core
ngx_file.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_FILE_H_INCLUDED_
9
#define _NGX_FILE_H_INCLUDED_
10
11
12
#include <
ngx_config.h
>
13
#include <
ngx_core.h
>
14
15
16
struct
ngx_file_s
{
17
ngx_fd_t
fd
;
18
ngx_str_t
name
;
19
ngx_file_info_t
info
;
20
21
off_t
offset
;
22
off_t
sys_offset
;
23
24
ngx_log_t
*
log
;
25
26
#if (NGX_HAVE_FILE_AIO)
27
ngx_event_aio_t
*aio;
28
#endif
29
30
unsigned
valid_info
:1;
31
unsigned
directio
:1;
32
};
33
34
35
#define NGX_MAX_PATH_LEVEL 3
36
37
38
typedef
time_t (*
ngx_path_manager_pt
) (
void
*data);
39
typedef
void (*
ngx_path_loader_pt
) (
void
*data);
40
41
42
typedef
struct
{
43
ngx_str_t
name
;
44
size_t
len
;
45
size_t
level[3];
46
47
ngx_path_manager_pt
manager
;
48
ngx_path_loader_pt
loader
;
49
void
*
data
;
50
51
u_char *
conf_file
;
52
ngx_uint_t
line
;
53
}
ngx_path_t
;
54
55
56
typedef
struct
{
57
ngx_str_t
name
;
58
size_t
level[3];
59
}
ngx_path_init_t
;
60
61
62
typedef
struct
{
63
ngx_file_t
file
;
64
off_t
offset
;
65
ngx_path_t
*
path
;
66
ngx_pool_t
*
pool
;
67
char
*
warn
;
68
69
ngx_uint_t
access
;
70
71
unsigned
log_level:8;
72
unsigned
persistent:1;
73
unsigned
clean:1;
74
}
ngx_temp_file_t
;
75
76
77
typedef
struct
{
78
ngx_uint_t
access
;
79
ngx_uint_t
path_access
;
80
time_t
time
;
81
ngx_fd_t
fd
;
82
83
unsigned
create_path:1;
84
unsigned
delete_file:1;
85
86
ngx_log_t
*
log
;
87
}
ngx_ext_rename_file_t
;
88
89
90
typedef
struct
{
91
off_t
size
;
92
size_t
buf_size
;
93
94
ngx_uint_t
access
;
95
time_t
time
;
96
97
ngx_log_t
*
log
;
98
}
ngx_copy_file_t
;
99
100
101
typedef
struct
ngx_tree_ctx_s
ngx_tree_ctx_t
;
102
103
typedef
ngx_int_t
(*
ngx_tree_init_handler_pt
) (
void
*ctx,
void
*prev);
104
typedef
ngx_int_t
(*
ngx_tree_handler_pt
) (
ngx_tree_ctx_t
*ctx,
ngx_str_t
*name);
105
106
struct
ngx_tree_ctx_s
{
107
off_t
size
;
108
off_t
fs_size
;
109
ngx_uint_t
access
;
110
time_t
mtime
;
111
112
ngx_tree_init_handler_pt
init_handler
;
113
ngx_tree_handler_pt
file_handler
;
114
ngx_tree_handler_pt
pre_tree_handler
;
115
ngx_tree_handler_pt
post_tree_handler
;
116
ngx_tree_handler_pt
spec_handler
;
117
118
void
*
data
;
119
size_t
alloc
;
120
121
ngx_log_t
*
log
;
122
};
123
124
125
ssize_t
ngx_write_chain_to_temp_file
(
ngx_temp_file_t
*tf,
ngx_chain_t
*chain);
126
ngx_int_t
ngx_create_temp_file
(
ngx_file_t
*file,
ngx_path_t
*path,
127
ngx_pool_t
*pool,
ngx_uint_t
persistent,
ngx_uint_t
clean,
128
ngx_uint_t
access);
129
void
ngx_create_hashed_filename
(
ngx_path_t
*path, u_char *file,
size_t
len);
130
ngx_int_t
ngx_create_path
(
ngx_file_t
*file,
ngx_path_t
*path);
131
ngx_err_t
ngx_create_full_path
(u_char *dir,
ngx_uint_t
access);
132
ngx_int_t
ngx_add_path
(
ngx_conf_t
*cf,
ngx_path_t
**slot);
133
ngx_int_t
ngx_create_paths
(
ngx_cycle_t
*cycle,
ngx_uid_t
user);
134
ngx_int_t
ngx_ext_rename_file
(
ngx_str_t
*src,
ngx_str_t
*to,
135
ngx_ext_rename_file_t
*
ext
);
136
ngx_int_t
ngx_copy_file
(u_char *from, u_char *to,
ngx_copy_file_t
*cf);
137
ngx_int_t
ngx_walk_tree
(
ngx_tree_ctx_t
*ctx,
ngx_str_t
*tree);
138
139
ngx_atomic_uint_t
ngx_next_temp_number
(
ngx_uint_t
collision);
140
141
char
*
ngx_conf_set_path_slot
(
ngx_conf_t
*cf,
ngx_command_t
*cmd,
void
*conf);
142
char
*
ngx_conf_merge_path_value
(
ngx_conf_t
*cf,
ngx_path_t
**path,
143
ngx_path_t
*prev,
ngx_path_init_t
*init);
144
char
*
ngx_conf_set_access_slot
(
ngx_conf_t
*cf,
ngx_command_t
*cmd,
void
*conf);
145
146
147
extern
ngx_atomic_t
*
ngx_temp_number
;
148
extern
ngx_atomic_int_t
ngx_random_number
;
149
150
151
#endif
/* _NGX_FILE_H_INCLUDED_ */
Generated on Sun Nov 10 2013 09:49:06 for Groonga 3.0.9 Source Code Document by
1.8.1.2