libamxd  6.4.1
Data Model Manager
amxd_action.h File Reference

Ambiorix Data Model Default actions header file. More...

#include <stdint.h>
#include <amxd/amxd_types.h>

Go to the source code of this file.

Functions

amxd_status_t amxd_action_param_read (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default parameter read action implementation. More...
 
amxd_status_t amxd_action_param_read_hidden_value (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default parameter read action implementation for hidden values. More...
 
amxd_status_t amxd_action_param_write (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default parameter write action implementation. More...
 
amxd_status_t amxd_action_param_validate (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default parameter validate action implementation. More...
 
amxd_status_t amxd_action_param_check_range (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default check range parameter validate action implementation. More...
 
amxd_status_t amxd_action_param_check_minimum (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default check minimum parameter validate action implementation. More...
 
amxd_status_t amxd_action_param_check_maximum (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default check maximum parameter validate action implementation. More...
 
amxd_status_t amxd_action_param_check_enum (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default check enum parameter validate action implementation. More...
 
amxd_status_t amxd_action_param_check_is_in (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default check is in parameter validate action implementation. More...
 
void amxd_param_build_description (amxc_var_t *description, const char *name, uint32_t type_id, uint32_t attrs, amxc_var_t *flags)
 
amxd_status_t amxd_action_param_describe (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default parameter describe action implementation. More...
 
amxd_status_t amxd_action_param_destroy (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default parameter destroy action implementation. More...
 
amxd_status_t amxd_action_object_list (amxd_object_t *const object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default object list action implementation. More...
 
amxd_status_t amxd_action_object_describe (amxd_object_t *object, amxd_param_t *param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default object describe action implementation. More...
 
amxd_status_t amxd_action_object_read_filter (amxc_string_t *filter, const amxc_var_t *args)
 
amxd_status_t amxd_action_object_read (amxd_object_t *const object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 
amxd_status_t amxd_action_object_write (amxd_object_t *const object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 
amxd_status_t amxd_action_object_add_inst (amxd_object_t *const object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 
amxd_status_t amxd_action_object_del_inst (amxd_object_t *const object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 
amxd_status_t amxd_action_object_destroy (amxd_object_t *object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default object destroy action implementation. More...
 
amxd_status_t amxd_action_object_validate (amxd_object_t *const object, amxd_param_t *const param, amxd_action_t reason, const amxc_var_t *const args, amxc_var_t *const retval, void *priv)
 Default object validate action implementation. More...
 

Detailed Description

Ambiorix Data Model Default actions header file.

Definition in file amxd_action.h.

Function Documentation

◆ amxd_action_object_add_inst()

amxd_status_t amxd_action_object_add_inst ( amxd_object_t *const  object,
amxd_param_t *const  param,
amxd_action_t  reason,
const amxc_var_t *const  args,
amxc_var_t *const  retval,
void *  priv 
)

◆ amxd_action_object_del_inst()

amxd_status_t amxd_action_object_del_inst ( amxd_object_t *const  object,
amxd_param_t *const  param,
amxd_action_t  reason,
const amxc_var_t *const  args,
amxc_var_t *const  retval,
void *  priv 
)

◆ amxd_action_object_read()

amxd_status_t amxd_action_object_read ( amxd_object_t *const  object,
amxd_param_t *const  param,
amxd_action_t  reason,
const amxc_var_t *const  args,
amxc_var_t *const  retval,
void *  priv 
)

◆ amxd_action_object_read_filter()

amxd_status_t amxd_action_object_read_filter ( amxc_string_t *  filter,
const amxc_var_t *  args 
)

Definition at line 233 of file amxd_action_object_read.c.

234  {
236  amxc_var_t* temp = NULL;
237  const char* f = GET_CHAR(args, "filter");
238 
239  if((f != NULL) && (*f != 0)) {
240  amxc_string_setf(filter, "%s", f);
241  goto exit;
242  }
243 
244  temp = GET_ARG(args, "parameters");
245  when_true_status(!amxc_var_is_null(temp) && amxc_var_type_of(temp) != AMXC_VAR_ID_LIST,
246  exit,
248  if(temp != NULL) {
249  filter_add_params(filter, amxc_var_constcast(amxc_llist_t, temp));
250  }
251 
252  temp = GET_ARG(args, "attributes");
253  if(temp != NULL) {
254  filter_add_attributes(filter, amxc_var_dyncast(uint32_t, temp));
255  }
256 
257 exit:
258  return status;
259 }
static void filter_add_attributes(amxc_string_t *filter, uint32_t attrs)
static void filter_add_params(amxc_string_t *filter, const amxc_llist_t *names)
enum _amxd_status amxd_status_t
@ amxd_status_invalid_function_argument
Definition: amxd_types.h:85
@ amxd_status_ok
Definition: amxd_types.h:78
static amxd_status_t status

◆ amxd_action_object_write()

amxd_status_t amxd_action_object_write ( amxd_object_t *const  object,
amxd_param_t *const  param,
amxd_action_t  reason,
const amxc_var_t *const  args,
amxc_var_t *const  retval,
void *  priv 
)

◆ amxd_param_build_description()

void amxd_param_build_description ( amxc_var_t *  description,
const char *  name,
uint32_t  type_id,
uint32_t  attrs,
amxc_var_t *  flags 
)

Definition at line 109 of file amxd_action_param_describe.c.

113  {
114  static const char* attr_name[] = {
115  "template", "instance", "private", "read-only", "persistent",
116  "volatile", "counter", "key", "unique", "protected", "mutable"
117  };
118  amxc_var_t* subvar = NULL;
119  amxc_var_set_type(description, AMXC_VAR_ID_HTABLE);
120 
121  amxc_var_add_key(cstring_t, description, "name", name);
122  amxc_var_add_key(uint32_t, description, "type_id", type_id);
123  amxc_var_add_key(cstring_t, description, "type_name", amxc_var_get_type_name_from_id(type_id));
124  amxc_var_add_new_key(description, "value");
125  subvar = amxc_var_add_key(amxc_htable_t, description, "attributes", NULL);
126  for(int i = 0; i <= amxd_pattr_max; i++) {
127  amxc_var_add_key(bool, subvar, attr_name[i], IS_BIT_SET(attrs, i));
128  }
129  subvar = amxc_var_add_key(amxc_llist_t, description, "flags", NULL);
130  if(flags != NULL) {
131  const amxc_htable_t* ht_flags = amxc_var_constcast(amxc_htable_t, flags);
132  amxc_htable_iterate(it, ht_flags) {
133  amxc_var_t* flag = amxc_var_from_htable_it(it);
134  if(amxc_var_dyncast(bool, flag)) {
135  amxc_var_add(cstring_t, subvar, amxc_htable_it_get_key(it));
136  }
137  }
138  }
139 }
#define IS_BIT_SET(b, f)
Definition: amxd_common.h:66
@ amxd_pattr_max
Definition: amxd_types.h:366