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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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