89 amxc_var_t* retval = data->
retval;
93 amxc_var_add(cstring_t, retval, path);
99 bool is_valid =
false;
100 const char* rel_path = GET_CHAR(args,
"rel_path");
107 amxc_llist_init(&paths);
110 when_false(is_valid, exit);
114 when_failed(retval, exit);
115 when_true(amxc_llist_is_empty(&paths), exit);
118 amxc_llist_for_each(it, (&paths)) {
119 amxc_string_t* path = amxc_string_from_llist_it(it);
130 amxc_llist_clean(&paths, amxc_string_list_it_free);
139 amxc_var_t* retval) {
140 amxc_var_t* var_index = GET_ARG(args,
"index");
142 const char* name = NULL;
149 if(var_index == NULL) {
157 index = GET_UINT32(args,
"index");
158 name = GET_CHAR(args,
"name");
178 amxc_var_t* var_rel_path = GET_ARG(args,
"rel_path");
179 const char* rel_path = GET_CHAR(var_rel_path, NULL);
186 amxc_llist_init(&paths);
187 amxc_var_set_type(ret, AMXC_VAR_ID_LIST);
194 amxc_var_take_it(var_rel_path);
195 if((rel_path != NULL) && (*rel_path != 0)) {
197 when_failed(retval, exit);
198 amxc_llist_for_each(it, (&paths)) {
199 amxc_string_t* path = amxc_string_from_llist_it(it);
213 amxc_var_delete(&var_rel_path);
214 amxc_llist_clean(&paths, amxc_string_list_it_free);
Ambiorix Data Model API header file.
amxd_object_t * amxd_dm_findf(amxd_dm_t *const dm, const char *abs_path,...) __attribute__((format(printf
static void amxd_add_del_instance(amxd_object_t *object, bool key_path, amxd_trans_t *transaction, amxc_var_t *args, amxc_var_t *retval)
struct _del_data del_data_t
static void amxd_object_del_rv(amxd_object_t *const object, UNUSED int32_t depth, void *priv)
static bool amxd_del_is_path_valid(amxd_object_t *object, amxc_var_t *args)
amxd_status_t amxd_object_func_del(amxd_object_t *object, UNUSED amxd_function_t *func, amxc_var_t *args, amxc_var_t *ret)
static bool amxd_object_del_rv_filter(amxd_object_t *const object, UNUSED int32_t depth, UNUSED void *priv)
void PRIVATE amxd_def_funcs_remove_args(amxc_var_t *args)
Ambiorix Data Model API header file.
Ambiorix path API header file.
Ambiorix Data Model API header file.
enum _amxd_status amxd_status_t
@ amxd_status_object_not_found
@ amxd_status_unknown_error
#define AMXD_OBJECT_INDEXED
Name and path format flag - use index for instance objects.
#define AMXD_OBJECT_NAMED
Name and path format flag - default behavior, use name for instance objects.
#define AMXD_OBJECT_TERMINATE
Path format flag - when set the object path is terminated with a dot.
amxd_object_t amxd_status_t amxd_status_t char * amxd_object_get_path(const amxd_object_t *object, const uint32_t flags)
Get the full path of the object.
amxd_object_t * amxd_object_get_parent(const amxd_object_t *const object)
Get the parent object.
void amxd_object_hierarchy_walk(amxd_object_t *const object, const amxd_direction_t direction, amxd_object_filter_fn_t filter, amxd_object_cb_fn_t cb, int32_t depth, void *priv)
Iterates over all objects in the data model tree.
amxd_dm_t * amxd_object_get_dm(const amxd_object_t *const object)
Get the data model.
amxd_object_t amxd_status_t amxd_object_resolve_pathf(amxd_object_t *object, amxc_llist_t *paths, const char *rel_path,...) __attribute__((format(printf
Resolves a search path into a list of matching object paths.
bool amxd_object_is_supported(amxd_object_t *object, const char *rel_path)
Checks if a path is in the supported data model.
amxd_object_t * amxd_object_get_instance(const amxd_object_t *object, const char *name, uint32_t index)
Get an instance of the template object.
uint32_t amxd_object_get_index(const amxd_object_t *const object)
Get the index of an instance object.
static amxd_object_type_t amxd_object_get_type(const amxd_object_t *const object)
Returns the object type.
amxd_status_t amxd_trans_add_action(amxd_trans_t *const trans, const amxd_action_t reason, const amxc_var_t *data)
Adds an action to a transaction.
void amxd_trans_clean(amxd_trans_t *const trans)
Cleans the transaction object.
amxd_status_t amxd_trans_apply(amxd_trans_t *const trans, amxd_dm_t *const dm)
Applies all previously added actions.
amxd_status_t amxd_status_t amxd_trans_select_object(amxd_trans_t *trans, const amxd_object_t *const object)
Selects an object using an object pointer.
amxd_status_t amxd_trans_init(amxd_trans_t *const trans)
Initializes a transaction object.