/src/pigeonhole/src/lib-sieve/plugins/variables/ext-variables-modifiers.h
Line | Count | Source |
1 | | #ifndef EXT_VARIABLES_MODIFIERS_H |
2 | | #define EXT_VARIABLES_MODIFIERS_H |
3 | | |
4 | | #include "sieve-common.h" |
5 | | #include "sieve-runtime-trace.h" |
6 | | |
7 | | #include "ext-variables-common.h" |
8 | | |
9 | | #define ext_variables_namespace_name(nspc) \ |
10 | | (nspc)->object->def->name |
11 | | #define ext_variables_namespaces_equal(nspc1, nspc2) \ |
12 | | ((nspc1)->def == (nspc2)->def)) |
13 | | |
14 | | /* |
15 | | * Modifier registry |
16 | | */ |
17 | | |
18 | | bool ext_variables_modifier_exists(const struct sieve_extension *var_ext, |
19 | | struct sieve_validator *valdtr, |
20 | | const char *identifier); |
21 | | const struct sieve_variables_modifier * |
22 | | ext_variables_modifier_create_instance(const struct sieve_extension *var_ext, |
23 | | struct sieve_validator *valdtr, |
24 | | struct sieve_command *cmd, |
25 | | const char *identifier); |
26 | | |
27 | | void ext_variables_register_core_modifiers( |
28 | | const struct sieve_extension *var_ext, |
29 | | struct ext_variables_validator_context *ctx); |
30 | | |
31 | | /* |
32 | | * Modifier operand |
33 | | */ |
34 | | |
35 | | extern const struct sieve_operand_def modifier_operand; |
36 | | |
37 | | static inline void |
38 | | ext_variables_opr_modifier_emit( |
39 | | struct sieve_binary_block *sblock, const struct sieve_extension *ext, |
40 | | const struct sieve_variables_modifier_def *modf_def) |
41 | 0 | { |
42 | 0 | sieve_opr_object_emit(sblock, ext, &modf_def->obj_def); |
43 | 0 | } Unexecuted instantiation: ext-variables.c:ext_variables_opr_modifier_emit Unexecuted instantiation: ext-variables-common.c:ext_variables_opr_modifier_emit Unexecuted instantiation: ext-variables-modifiers.c:ext_variables_opr_modifier_emit |
44 | | |
45 | | static inline bool |
46 | | ext_variables_opr_modifier_read(const struct sieve_runtime_env *renv, |
47 | | const struct sieve_extension *var_ext, |
48 | | sieve_size_t *address, |
49 | | struct sieve_variables_modifier *modf) |
50 | 0 | { |
51 | 0 | if (!sieve_opr_object_read( |
52 | 0 | renv, &sieve_variables_modifier_operand_class, address, |
53 | 0 | &modf->object)) { |
54 | 0 | sieve_runtime_trace_error(renv, "invalid modifier operand"); |
55 | 0 | return FALSE; |
56 | 0 | } |
57 | | |
58 | 0 | modf->def = (const struct sieve_variables_modifier_def *)modf->object.def; |
59 | 0 | modf->var_ext = var_ext; |
60 | 0 | return TRUE; |
61 | 0 | } Unexecuted instantiation: ext-variables.c:ext_variables_opr_modifier_read Unexecuted instantiation: ext-variables-common.c:ext_variables_opr_modifier_read Unexecuted instantiation: ext-variables-modifiers.c:ext_variables_opr_modifier_read |
62 | | |
63 | | static inline bool |
64 | | ext_variables_opr_modifier_dump(const struct sieve_dumptime_env *denv, |
65 | | sieve_size_t *address) |
66 | 0 | { |
67 | 0 | return sieve_opr_object_dump( |
68 | | denv, &sieve_variables_modifier_operand_class, address, NULL); |
69 | 0 | } Unexecuted instantiation: ext-variables.c:ext_variables_opr_modifier_dump Unexecuted instantiation: ext-variables-common.c:ext_variables_opr_modifier_dump Unexecuted instantiation: ext-variables-modifiers.c:ext_variables_opr_modifier_dump |
70 | | |
71 | | #endif |