74                                             amxc_var_t* default_value) {
 
   77     amxc_llist_it_init(&arg->
it);
 
   79     if((type == AMXC_VAR_ID_ANY) ||
 
   80        ( amxc_var_get_type(type) != NULL)) {
 
   81         arg->
name = strdup(name);
 
   82         if(arg->
name != NULL) {
 
   99     uint32_t attributes = 0;
 
  110                                              const uint32_t attr) {
 
  121     amxc_llist_for_each(it, (&func->
args)) {
 
  123         if(strcmp(arg->
name, name) == 0) {
 
  133     amxc_llist_it_take(&arg->
it);
 
  143                                     amxc_var_t* default_value) {
 
  146     when_null(func, exit);
 
  154     when_null(arg, exit);
 
  159         amxc_llist_append(&func->
args, &arg->
it);
 
  170     when_null(func, exit);
 
  171     when_str_empty(name, exit);
 
  174     when_null(arg, exit);
 
  190     when_null(func, exit);
 
  197     when_null(arg, exit);
 
  202        ( arg->
type == AMXC_VAR_ID_ANY)) {
 
  208         flags |= (1 << attr);
 
  210         flags &= ~(1 << attr);
 
  222                                           const uint32_t bitmask,
 
  233     when_null(func, exit);
 
  237     when_null(arg, exit);
 
  242        ( arg->
type == AMXC_VAR_ID_ANY)) {
 
  266     when_null(func, exit);
 
  270     when_null(arg, exit);
 
  272     retval = (flags & (1 << attr)) != 0 ? true : 
false;
 
  279                                          amxc_var_t* 
const value) {
 
  281     amxc_var_t* table = NULL;
 
  283     static const char* attr_name[] = {
 
  290     when_null(arg, exit);
 
  291     when_null(value, exit);
 
  293     amxc_var_set_type(value, AMXC_VAR_ID_HTABLE);
 
  294     amxc_var_add_key(cstring_t, value, 
"name", arg->
name);
 
  295     amxc_var_add_key(uint32_t, value, 
"type_id", arg->
type);
 
  296     amxc_var_add_key(cstring_t,
 
  299                      amxc_var_get_type_name_from_id(arg->
type));
 
  301         amxc_var_set_key(value, 
"default", &arg->
default_value, AMXC_VAR_FLAG_COPY);
 
  303     table = amxc_var_add_key(amxc_htable_t, value, 
"attributes", NULL);
 
  306         bool is_set = (attrs & (1 << i)) != 0 ? true : 
false;
 
  307         amxc_var_add_key(
bool,
 
Ambiorix Data Model RPC methods API header file.
static bool amxd_function_arg_valid_name(amxd_function_t *func, const char *name)
static amxd_status_t amxd_function_arg_init(amxd_func_arg_t *const arg, const char *name, uint32_t type, amxc_var_t *default_value)
static uint32_t amxd_function_arg_get_attributes(const amxd_func_arg_t *const arg)
void PRIVATE amxd_function_arg_clean(amxd_func_arg_t *const arg)
static void amxd_function_arg_set_attributes(amxd_func_arg_t *const arg, const uint32_t attr)
Ambiorix Data Model API header file.
enum _amxd_status amxd_status_t
@ amxd_status_invalid_name
@ amxd_status_invalid_attr
@ amxd_status_unknown_error
enum _amxd_aattr_id amxd_aattr_id_t
The method argument attributes.
amxd_status_t amxd_function_arg_set_attr(amxd_function_t *const func, const char *name, const amxd_aattr_id_t attr, const bool enable)
Sets or unsets a method argument attribute.
amxd_func_arg_t * amxd_function_get_arg(const amxd_function_t *const func, const char *name)
Gets the argument definition of a RPC method.
bool amxd_function_arg_is_attr_set(const amxd_function_t *const func, const char *name, const amxd_aattr_id_t attr)
Checks if a method argument attribute is set.
amxd_status_t amxd_function_arg_describe(amxd_func_arg_t *const arg, amxc_var_t *const value)
Fetches the argument definition in a variant.
void amxd_function_del_arg(amxd_function_t *func, const char *name)
Removes an argument definition from a RPC method definition.
amxd_status_t amxd_function_new_arg(amxd_function_t *func, const char *name, const uint32_t type, amxc_var_t *default_value)
Adds an argument definition to a RPC method definition.
amxd_status_t amxd_function_arg_set_attrs(amxd_function_t *func, const char *name, const uint32_t bitmask, bool enable)
Sets or unsets method argument attributes using a bitmap.
static amxd_status_t status