80 !amxc_llist_is_empty(&object->
instances)) ||
100 when_null(
object, exit);
101 when_null(param, exit);
102 when_not_null(param->
it.llist, exit);
107 when_failed(retval, exit);
109 amxc_llist_for_each(it, (&object->
parameters)) {
110 const char* object_param_name = NULL;
111 const char* param_name = NULL;
112 object_param = amxc_llist_it_get_data(it,
amxd_param_t, it);
115 if(strcmp(param_name, object_param_name) == 0) {
151 const char* rel_path = NULL;
155 when_null(
object, exit);
156 when_str_empty(name, exit);
161 when_null(real_obj, exit);
163 amxc_llist_for_each(it, (&real_obj->
parameters)) {
164 const char* param_name = NULL;
179 return param == NULL ? NULL : (
const char* ) param->
priv;
187 when_null(
object, exit);
194 when_null(templ_obj, exit);
200 when_null(container, exit);
205 amxc_llist_for_each(it, (&container->
parameters)) {
206 const char* counted_object_name = NULL;
209 if((counted_object_name != NULL) &&
223 amxc_var_t*
const value) {
225 amxc_var_t* params = NULL;
229 amxc_var_init(&args);
230 amxc_var_init(&retval);
231 when_null(
object, exit);
232 when_null(value, exit);
233 when_str_empty(name, exit);
235 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
236 params = amxc_var_add_key(amxc_htable_t, &args,
"parameters", NULL);
237 amxc_var_set_key(params, name, value, AMXC_VAR_FLAG_COPY);
239 amxc_var_add_key(
bool, &args,
"set_read_only",
true);
247 amxc_var_clean(&retval);
248 amxc_var_clean(&args);
254 amxc_var_t*
const value) {
257 amxc_var_t* params = NULL;
258 amxc_var_t params_value;
261 amxc_var_init(&args);
262 amxc_var_init(¶ms_value);
263 when_null(
object, exit);
264 when_null(value, exit);
265 when_str_empty(name, exit);
271 amxc_var_copy(value, &def->
value);
278 amxc_var_set_type(&args, AMXC_VAR_ID_HTABLE);
280 params = amxc_var_add_key(amxc_llist_t, &args,
"parameters", NULL);
281 amxc_var_add(cstring_t, params, name);
288 amxc_var_t* param_val = amxc_var_get_path(¶ms_value,
290 AMXC_VAR_FLAG_DEFAULT);
292 amxc_var_copy(value, param_val);
296 amxc_var_clean(¶ms_value);
297 amxc_var_clean(&args);
303 amxc_var_t* value = NULL;
306 value = ¶m->
value;
316 amxc_var_init(&list);
318 count = amxc_llist_size(amxc_var_constcast(amxc_llist_t, &list));
321 amxc_var_clean(&list);
329 amxc_var_t new_value;
331 amxc_var_init(&new_value);
332 amxc_var_set(cstring_t, &new_value, value);
335 amxc_var_clean(&new_value);
343 amxc_var_t new_value;
345 amxc_var_init(&new_value);
346 amxc_var_set(csv_string_t, &new_value, value);
349 amxc_var_clean(&new_value);
357 amxc_var_t new_value;
359 amxc_var_init(&new_value);
360 amxc_var_set(ssv_string_t, &new_value, value);
363 amxc_var_clean(&new_value);
371 amxc_var_t new_value;
373 amxc_var_init(&new_value);
374 amxc_var_set(
bool, &new_value, value);
377 amxc_var_clean(&new_value);
385 amxc_var_t new_value;
387 amxc_var_init(&new_value);
388 amxc_var_set(int8_t, &new_value, value);
391 amxc_var_clean(&new_value);
399 amxc_var_t new_value;
401 amxc_var_init(&new_value);
402 amxc_var_set(uint8_t, &new_value, value);
405 amxc_var_clean(&new_value);
413 amxc_var_t new_value;
415 amxc_var_init(&new_value);
416 amxc_var_set(int16_t, &new_value, value);
419 amxc_var_clean(&new_value);
427 amxc_var_t new_value;
429 amxc_var_init(&new_value);
430 amxc_var_set(uint16_t, &new_value, value);
433 amxc_var_clean(&new_value);
441 amxc_var_t new_value;
443 amxc_var_init(&new_value);
444 amxc_var_set(int32_t, &new_value, value);
447 amxc_var_clean(&new_value);
455 amxc_var_t new_value;
457 amxc_var_init(&new_value);
458 amxc_var_set(uint32_t, &new_value, value);
461 amxc_var_clean(&new_value);
469 amxc_var_t new_value;
471 amxc_var_init(&new_value);
472 amxc_var_set(int64_t, &new_value, value);
475 amxc_var_clean(&new_value);
483 amxc_var_t new_value;
485 amxc_var_init(&new_value);
486 amxc_var_set(uint64_t, &new_value, value);
489 amxc_var_clean(&new_value);
497 amxc_var_t new_value;
499 amxc_var_init(&new_value);
500 amxc_var_set(
double, &new_value, value);
503 amxc_var_clean(&new_value);
511 amxc_var_t new_value;
513 amxc_var_init(&new_value);
514 amxc_var_set(amxc_ts_t, &new_value, value);
517 amxc_var_clean(&new_value);
528 amxc_var_init(&value);
531 retval = amxc_var_dyncast(cstring_t, &value);
537 amxc_var_clean(&value);
548 amxc_var_init(&value);
551 retval = amxc_var_dyncast(
bool, &value);
557 amxc_var_clean(&value);
568 amxc_var_init(&value);
571 retval = amxc_var_dyncast(int8_t, &value);
577 amxc_var_clean(&value);
588 amxc_var_init(&value);
591 retval = amxc_var_dyncast(uint8_t, &value);
597 amxc_var_clean(&value);
608 amxc_var_init(&value);
611 retval = amxc_var_dyncast(int16_t, &value);
617 amxc_var_clean(&value);
628 amxc_var_init(&value);
631 retval = amxc_var_dyncast(uint16_t, &value);
637 amxc_var_clean(&value);
648 amxc_var_init(&value);
651 retval = amxc_var_dyncast(int32_t, &value);
657 amxc_var_clean(&value);
668 amxc_var_init(&value);
671 retval = amxc_var_dyncast(uint32_t, &value);
677 amxc_var_clean(&value);
688 amxc_var_init(&value);
691 retval = amxc_var_dyncast(int64_t, &value);
697 amxc_var_clean(&value);
708 amxc_var_init(&value);
711 retval = amxc_var_dyncast(uint64_t, &value);
717 amxc_var_clean(&value);
728 amxc_var_init(&value);
731 retval = amxc_var_dyncast(
double, &value);
737 amxc_var_clean(&value);
745 amxc_ts_t* retval = NULL;
748 amxc_var_init(&value);
751 retval = amxc_var_dyncast(amxc_ts_t, &value);
757 amxc_var_clean(&value);
Ambiorix Data Model API header file.
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)
Ambiorix Data Model API header file.
bool amxd_object_has_action(amxd_object_t *const object, const amxd_action_t reason)
uint64_t amxd_object_get_uint64_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
uint8_t amxd_object_get_uint8_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
int32_t amxd_object_get_int32_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
amxd_status_t amxd_object_set_int64_t(amxd_object_t *const object, const char *name, int64_t value)
amxd_status_t amxd_object_set_uint64_t(amxd_object_t *const object, const char *name, uint64_t value)
double amxd_object_get_double(amxd_object_t *const object, const char *name, amxd_status_t *status)
amxd_status_t amxd_object_set_int16_t(amxd_object_t *const object, const char *name, int16_t value)
int64_t amxd_object_get_int64_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
amxd_status_t amxd_object_set_uint32_t(amxd_object_t *const object, const char *name, uint32_t value)
amxd_status_t amxd_object_set_amxc_ts_t(amxd_object_t *const object, const char *name, amxc_ts_t *value)
amxd_param_t * amxd_object_get_param_counter_by_counted_object(const amxd_object_t *const object)
Gets a parameter definition associated with a counted object.
uint32_t amxd_object_get_param_count(amxd_object_t *object, amxd_dm_access_t access)
amxd_status_t amxd_object_set_csv_string_t(amxd_object_t *const object, const char *name, const char *value)
int16_t amxd_object_get_int16_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
amxc_ts_t * amxd_object_get_amxc_ts_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
amxd_status_t amxd_object_set_int8_t(amxd_object_t *const object, const char *name, int8_t value)
static const char * amxd_param_get_counted_object_name(const amxd_param_t *const param)
amxd_status_t amxd_object_set_double(amxd_object_t *const object, const char *name, double value)
amxd_status_t amxd_object_set_bool(amxd_object_t *const object, const char *name, bool value)
int8_t amxd_object_get_int8_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
bool amxd_object_get_bool(amxd_object_t *const object, const char *name, amxd_status_t *status)
amxd_status_t amxd_object_set_ssv_string_t(amxd_object_t *const object, const char *name, const char *value)
amxd_status_t amxd_object_set_int32_t(amxd_object_t *const object, const char *name, int32_t value)
uint32_t amxd_object_get_uint32_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
amxd_status_t amxd_object_set_cstring_t(amxd_object_t *const object, const char *name, const char *value)
static amxd_status_t amxd_object_check_key_param(amxd_object_t *const object, amxd_param_t *const param)
char * amxd_object_get_cstring_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
amxd_status_t amxd_object_set_uint16_t(amxd_object_t *const object, const char *name, uint16_t value)
uint16_t amxd_object_get_uint16_t(amxd_object_t *const object, const char *name, amxd_status_t *status)
amxd_status_t amxd_object_set_uint8_t(amxd_object_t *const object, const char *name, uint8_t value)
amxd_status_t amxd_object_list_params(amxd_object_t *const object, amxc_var_t *const list, amxd_dm_access_t access)
bool amxd_param_is_attr_set(const amxd_param_t *const param, const amxd_pattr_id_t attr)
const char * amxd_param_get_name(const amxd_param_t *const param)
bool amxd_param_has_action(amxd_param_t *const param, const amxd_action_t reason)
Ambiorix path API header file.
enum _amxd_status amxd_status_t
@ amxd_status_invalid_attr
@ amxd_status_parameter_not_found
@ amxd_status_unknown_error
#define AMXD_OBJECT_NAMED
Name and path format flag - default behavior, use name for instance objects.
enum _amxd_dm_access amxd_dm_access_t
Access level.
#define AMXD_OBJECT_TERMINATE
Path format flag - when set the object path is terminated with a dot.
amxd_object_t * amxd_object_get_parent(const amxd_object_t *const object)
Get the parent object.
amxd_object_t * amxd_object_findf(amxd_object_t *object, const char *rel_path,...) __attribute__((format(printf
Find an object in the data model tree, starting from an object.
amxd_status_t amxd_object_set_param(amxd_object_t *const object, const char *name, amxc_var_t *const value)
Sets a value for a parameter in a data model object.
amxd_param_t * amxd_object_get_param_def(const amxd_object_t *const object, const char *name)
Gets a parameter definition from an object.
const amxc_var_t * amxd_object_get_param_value(const amxd_object_t *const object, const char *name)
Gets the variant in which the parameter value is stored.
amxd_status_t amxd_object_get_param(amxd_object_t *const object, const char *name, amxc_var_t *const value)
Gets a single parameter value.
amxd_status_t amxd_object_add_param(amxd_object_t *const object, amxd_param_t *const param)
Adds a parameter definition to an object.
static amxd_object_type_t amxd_object_get_type(const amxd_object_t *const object)
Returns the object type.
bool amxd_object_is_attr_set(const amxd_object_t *const object, const amxd_oattr_id_t attr)
Checks if an attribute is set.
const char * amxd_object_get_name(const amxd_object_t *const object, const uint32_t flags)
Get the name of the object (or index as a string for instance objects)
amxd_status_t amxd_path_init(amxd_path_t *path, const char *object_path)
Initializes an amxd_path_t structure.
const char * amxd_path_get_param(amxd_path_t *path)
Gets the parameter name.
const char * amxd_path_get(amxd_path_t *path, int flags)
Returns the path stored in the amxd_path_t structure.
void amxd_path_clean(amxd_path_t *path)
Cleans an amxd_path_t structure.
static amxd_status_t status