Mercurial > dovecot > core-2.2
annotate src/lib/var-expand-private.h @ 22664:fea53c2725c0
director: Fix director_max_parallel_moves/kicks type
Should be uint, not time.
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Thu, 09 Nov 2017 12:24:16 +0200 |
parents | 3bae5694a7a5 |
children |
rev | line source |
---|---|
21859
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
1 #ifndef VAR_EXPAND_PRIVATE_H |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
2 #define VAR_EXPAND_PRIVATE_H 1 |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
3 |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
4 struct var_expand_context { |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
5 /* current variables */ |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
6 const struct var_expand_table *table; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
7 /* caller provided function table */ |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
8 const struct var_expand_func_table *func_table; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
9 /* caller provided context */ |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
10 void *context; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
11 /* last offset, negative counts from end*/ |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
12 int offset; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
13 /* last width, negative counts from end */ |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
14 int width; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
15 /* last zero padding */ |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
16 bool zero_padding:1; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
17 }; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
18 |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
19 /* this can be used to register a *global* function that is |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
20 prepended to function table. These can be used to register some |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
21 special handling for keys. |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
22 |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
23 you can call var_expand_with_funcs if you need to |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
24 expand something inside here. |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
25 |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
26 return -1 on error, 0 on unknown variable, 1 on success |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
27 */ |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
28 typedef int |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
29 var_expand_extension_func_t(struct var_expand_context *ctx, |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
30 const char *key, const char *field, |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
31 const char **result_r, const char **error_r); |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
32 |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
33 struct var_expand_extension_func_table { |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
34 const char *key; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
35 var_expand_extension_func_t *func; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
36 }; |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
37 |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
38 int var_expand_long(struct var_expand_context *ctx, |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
39 const void *key_start, size_t key_len, |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
40 const char **var_r, const char **error_r); |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
41 |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
42 void var_expand_extensions_init(void); |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
43 void var_expand_extensions_deinit(void); |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
44 |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
45 /* Functions registered here are placed before in-built functions, |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
46 so you can include your own implementation of something. |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
47 Be careful. Use NULL terminated list. |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
48 */ |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
49 void var_expand_register_func_array(const struct var_expand_extension_func_table *funcs); |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
50 void var_expand_unregister_func_array(const struct var_expand_extension_func_table *funcs); |
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
51 |
22539
3bae5694a7a5
var-expand: Add support for conditionals
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
21859
diff
changeset
|
52 int var_expand_if(struct var_expand_context *ctx, |
3bae5694a7a5
var-expand: Add support for conditionals
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
21859
diff
changeset
|
53 const char *key, const char *field, |
3bae5694a7a5
var-expand: Add support for conditionals
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
21859
diff
changeset
|
54 const char **result_r, const char **error_r); |
3bae5694a7a5
var-expand: Add support for conditionals
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
21859
diff
changeset
|
55 |
21859
954374379116
lib: Add extension support for var-expand
Aki Tuomi <aki.tuomi@dovecot.fi>
parents:
diff
changeset
|
56 #endif |