#include <stdlib.h>
#include <string.h>
#include <amxc/amxc.h>
#include <amxp/amxp_signal.h>
#include <amxp/amxp_slot.h>
#include <amxd/amxd_common.h>
#include <amxd/amxd_dm.h>
#include <amxd/amxd_object.h>
#include <amxd/amxd_object_event.h>
#include "amxd_priv.h"
#include "amxd_assert.h"
#include "amxd_dm_priv.h"
Go to the source code of this file.
|
static void | amxd_param_free_cb_it (amxc_llist_it_t *it) |
|
static bool | amxd_param_type_is_valid (const uint32_t type) |
|
static amxd_status_t | amxd_param_init (amxd_param_t *const param, const char *name, uint32_t type) |
|
static int | amxd_param_clean (amxd_param_t *const param) |
|
static amxd_status_t | amxd_param_check_key_attr (amxd_param_t *const param, const uint32_t attr) |
|
static amxd_status_t | amxd_param_check_templ_attr (amxd_param_t *const param, const uint32_t attr) |
|
static amxd_status_t | amxd_param_set_attributes (amxd_param_t *const param, const uint32_t attr) |
|
amxd_status_t | amxd_param_counter_update (amxd_param_t *counter) |
|
amxd_status_t | amxd_param_new (amxd_param_t **param, const char *name, const uint32_t type) |
|
void | amxd_param_free (amxd_param_t **param) |
|
amxd_status_t | amxd_param_copy (amxd_param_t **dest, const amxd_param_t *const source) |
|
amxd_object_t * | amxd_param_get_owner (const amxd_param_t *const param) |
|
const char * | amxd_param_get_name (const amxd_param_t *const param) |
|
amxd_status_t | amxd_param_set_attr (amxd_param_t *param, const amxd_pattr_id_t attr, const bool enable) |
|
amxd_status_t | amxd_param_set_attrs (amxd_param_t *param, const uint32_t bitmask, bool enable) |
|
uint32_t | amxd_param_get_attrs (const amxd_param_t *const param) |
|
bool | amxd_param_is_attr_set (const amxd_param_t *const param, const amxd_pattr_id_t attr) |
|
void | amxd_param_set_flag (amxd_param_t *param, const char *flag) |
|
void | amxd_param_unset_flag (amxd_param_t *param, const char *flag) |
|
bool | amxd_param_has_flag (const amxd_param_t *const param, const char *flag) |
|
◆ _GNU_SOURCE
◆ amxd_param_check_key_attr()
Definition at line 131 of file amxd_parameter.c.
146 !amxc_llist_is_empty(&owner->
instances)) ||
amxd_object_t * amxd_param_get_owner(const amxd_param_t *const param)
enum _amxd_status amxd_status_t
@ amxd_status_invalid_attr
static amxd_object_type_t amxd_object_get_type(const amxd_object_t *const object)
Returns the object type.
static amxd_status_t status
◆ amxd_param_check_templ_attr()
◆ amxd_param_clean()
Definition at line 119 of file amxd_parameter.c.
120 amxc_llist_it_take(¶m->
it);
122 amxc_var_delete(¶m->
flags);
124 amxc_var_clean(¶m->
value);
static void amxd_param_free_cb_it(amxc_llist_it_t *it)
◆ amxd_param_copy()
Definition at line 280 of file amxd_parameter.c.
283 when_null(dest, exit);
284 when_null(source, exit);
287 when_null((*dest), exit);
291 amxc_var_type_of(&source->
value)),
293 (*dest)->attr = source->
attr;
294 amxc_var_copy(&(*dest)->value, &source->
value);
295 if(source->
flags != NULL) {
296 amxc_var_new(&(*dest)->flags);
297 amxc_var_copy((*dest)->flags, source->
flags);
303 if((retval !=
amxd_status_ok) && (dest != NULL) && (*dest != NULL)) {
static amxd_status_t amxd_param_init(amxd_param_t *const param, const char *name, uint32_t type)
static int amxd_param_clean(amxd_param_t *const param)
@ amxd_status_unknown_error
◆ amxd_param_counter_update()
Definition at line 209 of file amxd_parameter.c.
213 const char* template_path = NULL;
214 amxc_var_t old_values;
220 template_path = (
const char*)
counter->priv;
222 when_null(counted, exit);
223 amxc_var_init(&old_values);
224 amxc_var_set_type(&old_values, AMXC_VAR_ID_HTABLE);
225 amxc_var_add_key(uint32_t,
228 GET_UINT32(&
counter->value, NULL));
231 amxc_var_clean(&old_values);
static uint32_t amxd_object_get_instance_count(const amxd_object_t *object)
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)
void amxd_object_send_changed(amxd_object_t *object, amxc_var_t *params, bool trigger)
Send an object changed event.
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_param_free()
Definition at line 266 of file amxd_parameter.c.
267 when_null(param, exit);
268 when_null((*param), exit);
271 amxc_llist_it_take(&(*param)->it);
◆ amxd_param_free_cb_it()
static void amxd_param_free_cb_it |
( |
amxc_llist_it_t * |
it | ) |
|
|
static |
◆ amxd_param_get_attrs()
uint32_t amxd_param_get_attrs |
( |
const amxd_param_t *const |
param | ) |
|
Definition at line 377 of file amxd_parameter.c.
378 uint32_t attributes = 0;
379 when_null(param, exit);
◆ amxd_param_get_name()
const char* amxd_param_get_name |
( |
const amxd_param_t *const |
param | ) |
|
◆ amxd_param_get_owner()
Definition at line 311 of file amxd_parameter.c.
313 when_null(param, exit);
314 when_null(param->
it.llist, exit);
316 object = amxc_container_of(param->
it.llist,
amxd_object_t, parameters);
◆ amxd_param_has_flag()
bool amxd_param_has_flag |
( |
const amxd_param_t *const |
param, |
|
|
const char * |
flag |
|
) |
| |
Definition at line 433 of file amxd_parameter.c.
435 when_null(param, exit);
436 when_null(flag, exit);
437 when_true(*flag == 0, exit);
bool PRIVATE amxd_common_has_flag(const amxc_var_t *const flags, const char *flag)
◆ amxd_param_init()
Definition at line 89 of file amxd_parameter.c.
94 amxc_llist_it_init(¶m->
it);
95 amxc_llist_init(¶m->
cb_fns);
109 amxc_var_init(¶m->
value);
110 param->
name = strdup(name);
111 when_null(param->
name, exit);
112 amxc_var_set_type(¶m->
value, type);
◆ amxd_param_is_attr_set()
Definition at line 397 of file amxd_parameter.c.
401 when_null(param, exit);
405 retval = (flags & (1 << attr)) != 0 ? true :
false;
uint32_t amxd_param_get_attrs(const amxd_param_t *const param)
◆ amxd_param_new()
Definition at line 239 of file amxd_parameter.c.
244 when_null(param, exit);
254 when_null((*param), exit);
259 if((retval != 0) && (param != NULL)) {
bool amxd_name_is_valid(const char *name)
static bool amxd_param_type_is_valid(const uint32_t type)
@ amxd_status_invalid_name
@ amxd_status_invalid_type
◆ amxd_param_set_attr()
Definition at line 326 of file amxd_parameter.c.
331 when_null(param, exit);
339 flags |= (1 << attr);
341 flags &= ~(1 << attr);
static amxd_status_t amxd_param_set_attributes(amxd_param_t *const param, const uint32_t attr)
◆ amxd_param_set_attributes()
Definition at line 176 of file amxd_parameter.c.
179 bool was_counter = param->
attr.
counter == 1 ? true :
false;
180 bool is_counter =
false;
183 when_failed(
status, exit);
185 when_failed(
status, exit);
199 is_counter = param->
attr.
counter == 1 ? true :
false;
200 if(was_counter && !is_counter) {
static amxd_status_t amxd_param_check_templ_attr(amxd_param_t *const param, const uint32_t attr)
static amxd_status_t amxd_param_check_key_attr(amxd_param_t *const param, const uint32_t attr)
◆ amxd_param_set_attrs()
◆ amxd_param_set_flag()
void amxd_param_set_flag |
( |
amxd_param_t * |
param, |
|
|
const char * |
flag |
|
) |
| |
Definition at line 411 of file amxd_parameter.c.
412 when_null(param, exit);
413 when_null(flag, exit);
414 when_true(*flag == 0, exit);
void PRIVATE amxd_common_set_flag(amxc_var_t **flags, const char *flag)
◆ amxd_param_type_is_valid()
static bool amxd_param_type_is_valid |
( |
const uint32_t |
type | ) |
|
|
static |
Definition at line 80 of file amxd_parameter.c.
81 return (amxc_var_get_type(type) != NULL &&
82 type < AMXC_VAR_ID_CUSTOM_BASE &&
83 type != AMXC_VAR_ID_LIST &&
84 type != AMXC_VAR_ID_HTABLE &&
85 type != AMXC_VAR_ID_FD &&
86 type != AMXC_VAR_ID_ANY);
◆ amxd_param_unset_flag()
void amxd_param_unset_flag |
( |
amxd_param_t * |
param, |
|
|
const char * |
flag |
|
) |
| |
Definition at line 422 of file amxd_parameter.c.
423 when_null(param, exit);
424 when_null(flag, exit);
425 when_true(*flag == 0, exit);
void PRIVATE amxd_common_unset_flag(amxc_var_t **flags, const char *flag)