bool ext_variables_modifier_exists (const struct sieve_extension *var_ext, struct sieve_validator *valdtr, const char *identifier) { struct ext_variables_validator_context *ctx = ext_variables_validator_context_get(var_ext, valdtr); return sieve_validator_object_registry_find(ctx->modifiers, identifier, NULL); }
void sieve_variables_namespace_register (const struct sieve_extension *var_ext, struct sieve_validator *valdtr, const struct sieve_extension *ext, const struct sieve_variables_namespace_def *nspc_def) { struct ext_variables_validator_context *ctx = ext_variables_validator_context_get(var_ext, valdtr); sieve_validator_object_registry_add(ctx->namespaces, ext, &nspc_def->obj_def); }
void sieve_variables_modifier_register (const struct sieve_extension *var_ext, struct sieve_validator *valdtr, const struct sieve_extension *ext, const struct sieve_variables_modifier_def *smodf_def) { struct ext_variables_validator_context *ctx = ext_variables_validator_context_get(var_ext, valdtr); sieve_validator_object_registry_add(ctx->modifiers, ext, &smodf_def->obj_def); }
const struct sieve_variables_namespace *ext_variables_namespace_create_instance (const struct sieve_extension *var_ext, struct sieve_validator *valdtr, struct sieve_command *cmd, const char *identifier) { struct ext_variables_validator_context *ctx = ext_variables_validator_context_get(var_ext, valdtr); struct sieve_object object; struct sieve_variables_namespace *nspc; pool_t pool; if ( !sieve_validator_object_registry_find (ctx->namespaces, identifier, &object) ) return NULL; pool = sieve_command_pool(cmd); nspc = p_new(pool, struct sieve_variables_namespace, 1); nspc->object = object; nspc->def = (const struct sieve_variables_namespace_def *) object.def; return nspc; }
const struct sieve_variables_modifier *ext_variables_modifier_create_instance (const struct sieve_extension *var_ext, struct sieve_validator *valdtr, struct sieve_command *cmd, const char *identifier) { struct ext_variables_validator_context *ctx = ext_variables_validator_context_get(var_ext, valdtr); struct sieve_object object; struct sieve_variables_modifier *modf; pool_t pool; if ( !sieve_validator_object_registry_find (ctx->modifiers, identifier, &object) ) return NULL; pool = sieve_command_pool(cmd); modf = p_new(pool, struct sieve_variables_modifier, 1); modf->object = object; modf->def = (const struct sieve_variables_modifier_def *) object.def; return modf; }