21 typedef struct props_s props_t;
22 typedef struct props_prop_s props_prop_t;
23 typedef struct props_row_s props_row_t;
24 typedef struct props_cursor_s props_cursor_t;
28 props_event_prop_changed = 1,
29 props_event_row_added = 2,
30 props_event_row_deleted = 3
36 void (*on_props_event)(props_t*, props_event_t,
void*,
void*);
41 xroad_node_id_t node_id;
46 #define props_create(...) \
48 props_create_args_t args = {.node_id = 0, .error = NULL, .cback = {}, __VA_ARGS__}; \
49 props_create_ex(args.node_id, args.error, args.cback); \
68 #define __props_dtor__ __dtor__(props_destructor)
69 void props_destructor(props_t** props);
114 #define __props_cursor_dtor__ __dtor__(props_cursor_destructor)
115 void props_cursor_destructor(props_cursor_t** cur);
241 xroad_errno_t
props_add_link(props_prop_t* prop, xroad_prop_t* link,
bool notify);
355 xroad_props_t*
props_clone(props_t* props, xroad_node_id_t node_id);
374 template<
typename value_type_t>
375 xroad_errno_t props_get(
void* obj,
xroad_str_t name, value_type_t* value, props_prop_t** prop = NULL);
377 xroad_errno_t props_set(
void* obj,
xroad_str_t name, int64_t value);
379 xroad_errno_t props_get(
void* obj,
xroad_str_t name,
double* value, props_prop_t** prop = NULL);
381 xroad_errno_t props_set(
void* obj,
xroad_str_t name,
double value);
391 xroad_errno_t props_get(
void* obj,
xroad_str_t name,
bool* value, props_prop_t** prop = NULL);
393 xroad_errno_t props_set(
void* obj,
xroad_str_t name,
bool value);
403 xroad_errno_t props_get_int16_by_name(
void* obj,
xroad_str_t name, int16_t* value, ...);
405 xroad_errno_t props_get_int32_by_name(
void* obj,
xroad_str_t name, int32_t* value, ...);
407 xroad_errno_t props_get_int64_by_name(
void* obj,
xroad_str_t name, int64_t* value, ...);
409 xroad_errno_t props_set_int64_by_name(
void* obj,
xroad_str_t name, int64_t value);
417 xroad_errno_t props_set_bool_by_name(
void* obj,
xroad_str_t name,
bool value);
424 xroad_errno_t props_set_double_by_name(
void* obj,
xroad_str_t name,
double value);
442 #define props_get(props, name, value, ...) _Generic((value), \
443 bool*: props_get_bool_by_name, \
444 int8_t*: props_get_int8_by_name, \
445 int16_t*: props_get_int16_by_name, \
446 int32_t*: props_get_int32_by_name, \
447 int64_t*: props_get_int64_by_name, \
448 double*: props_get_double_by_name, \
449 xroad_str_t*: props_get_str_by_name, \
450 xroad_time_t*: props_get_time_by_name \
451 )(props, name, value, ## __VA_ARGS__, NULL)
453 #define props_set(props, name, value) _Generic((value), \
454 int64_t: props_set_int64_by_name, \
455 double: props_set_double_by_name, \
456 xroad_str_t: props_set_str_by_name, \
457 xroad_time_t: props_set_time_by_name, \
458 default: props_set_int64_by_name \
459 )(props, name, value)
xroad_errno_t props_set_double(props_prop_t *prop, double value)
xroad_errno_t props_get_str_by_name(void *obj, xroad_str_t name, xroad_str_t *value,...)
bool props_is_set(props_prop_t *prop)
void * props_query(props_t *props, xroad_str_t query)
xroad_errno_t props_reset(props_prop_t *prop)
xroad_errno_t props_notify(props_prop_t *prop)
props_prop_t * props_get_prop(void *obj, xroad_str_t name)
bool props_is_row(void *obj)
xroad_str_t props_to_str(props_prop_t *prop)
bool props_has_link(props_prop_t *prop)
xroad_prop_t * props_get_link(props_prop_t *prop)
xroad_errno_t props_set_int64(props_prop_t *prop, int64_t value)
void props_destroy(props_t *props)
xroad_errno_t props_set_bool(props_prop_t *prop, bool value)
xroad_errno_t props_del_link(props_prop_t *prop)
xroad_errno_t props_get_bool_by_name(void *obj, xroad_str_t name, bool *value,...)
xroad_prop_type_t props_get_type(props_prop_t *prop)
xroad_props_t * props_clone(props_t *props, xroad_node_id_t node_id)
xroad_object_id_t props_get_id(void *obj)
xroad_prop_t * props_get_xprop(void *prop)
xroad_errno_t props_set_time(props_prop_t *prop, xroad_time_t value)
xroad_errno_t props_get_double_by_name(void *obj, xroad_str_t name, double *value,...)
int64_t props_get_int64(props_prop_t *prop)
xroad_prop_row_t * props_row_get_xrow(props_row_t *row)
props_cursor_t * props_create_cursor(void *obj)
props_t * props_create_ex(xroad_node_id_t node_id, xroad_errno_t *error, props_callback_t cback)
xroad_str_t props_get_name(void *obj)
xroad_time_t props_get_time(props_prop_t *prop)
xroad_props_t * props_get_xprops(props_t *props)
void * props_cursor_get_first(props_cursor_t *cur)
json_object * props_get_descr(void *obj)
props_row_t * props_get_row(props_prop_t *prop, xroad_object_id_t row_id)
xroad_errno_t props_get_time_by_name(void *obj, xroad_str_t name, xroad_time_t *value,...)
xroad_errno_t props_get_int8_by_name(void *obj, xroad_str_t name, int8_t *value,...)
xroad_errno_t props_add_link(props_prop_t *prop, xroad_prop_t *link, bool notify)
xroad_str_t props_get_error(props_t *props)
bool props_get_bool(props_prop_t *prop)
xroad_str_t props_get_str(props_prop_t *prop)
xroad_errno_t props_row_delete(props_row_t *row)
void * props_get_parent(void *obj)
void * props_cursor_get_next(props_cursor_t *cur)
props_row_t * props_add_row(props_prop_t *prop)
int32_t props_get_row_count(props_prop_t *prop)
xroad_errno_t props_set_str(props_prop_t *prop, xroad_str_t value)
xroad_errno_t props_calc_hash(props_prop_t *prop)
double props_get_double(props_prop_t *prop)
void props_destroy_cursor(props_cursor_t *cur)
Definition: xroad_string.h:29
Definition: xroad_time.h:26
CAUTION: do not change this file - it is autogenerated.
CAUTION: do not change this file - it is autogenerated.