168 amxc_var_t description;
170 amxp_expr_status_t expr_status = amxp_expr_status_ok;
172 amxc_var_init(&description);
173 amxc_var_set_type(retval, AMXC_VAR_ID_HTABLE);
174 amxc_var_init(&args);
175 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
177 if(expression != NULL) {
178 when_failed(amxp_expr_init(&expr, expression), exit);
181 amxc_var_add_key(uint32_t, &args,
"access", access);
182 amxc_var_add_key(
bool, &args,
"no-param-value",
true);
184 amxc_llist_for_each(it, (&object->
parameters)) {
188 amxc_var_t* value = NULL;
200 if(((attributes & param_attrs) == 0) && (param_attrs != 0)) {
203 if(params && !in_filter_list) {
206 if(expression != NULL) {
208 if(amxp_expr_eval_var(&expr, &description, &expr_status)) {
209 value = amxc_var_add_new_key(retval, name);
212 if(expr_status != amxp_expr_status_ok) {
217 value = amxc_var_add_new_key(retval, name);
225 if(expression != NULL) {
226 amxp_expr_clean(&expr);
228 amxc_var_clean(&description);
229 amxc_var_clean(&args);
static bool amxd_action_parameter_is_in(const char *name, amxc_var_t *params)
amxd_status_t amxd_dm_invoke_action(amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval)
bool amxd_action_can_add_param(uint32_t param_attrs, const amxd_object_type_t type, amxd_dm_access_t access, bool template_info)
const char * amxd_param_get_name(const amxd_param_t *const param)
uint32_t amxd_param_get_attrs(const amxd_param_t *const param)
enum _amxd_status amxd_status_t
@ amxd_status_parameter_not_found
@ amxd_status_unknown_error
static amxd_object_type_t amxd_object_get_type(const amxd_object_t *const object)
Returns the object type.
static amxd_status_t status