63 #include <amxc/amxc_variant.h>
64 #include <amxc/amxc_htable.h>
65 #include <amxc/amxc_lqueue.h>
67 #include <amxp/amxp_signal.h>
68 #include <amxp/amxp_slot.h>
70 #include <amxd/amxd_dm.h>
72 #include <amxo/amxo.h>
79 #include <amxc/amxc_macros.h>
83 UNUSED
const amxc_var_t* input,
84 UNUSED amxc_var_t* output,
91 UNUSED amxc_var_t* data,
100 assert_ptr_equal(ctx, NULL);
102 assert_ptr_equal(ctx, NULL);
104 assert_ptr_equal(ctx, NULL);
106 assert_ptr_equal(ctx, NULL);
108 assert_ptr_equal(ctx, NULL);
110 assert_ptr_equal(ctx, NULL);
116 assert_ptr_equal(ctx, NULL);
125 assert_ptr_not_equal(ctx, NULL);
126 assert_string_equal(ctx->
a,
"A.");
127 assert_string_equal(ctx->
b,
"B.");
132 assert_ptr_equal(ctx->
priv, NULL);
135 assert_true(amxc_llist_is_empty(&ctx->
entries));
137 assert_ptr_equal(ctx->
it.llist, NULL);
140 assert_ptr_equal(ctx, NULL);
168 assert_string_equal(ctx.
a,
"A.");
169 assert_string_equal(ctx.
b,
"B.");
174 assert_ptr_equal(ctx.
priv, NULL);
177 assert_true(amxc_llist_is_empty(&ctx.
entries));
179 assert_ptr_equal(ctx.
it.llist, NULL);
182 assert_ptr_equal(ctx.
a, NULL);
183 assert_ptr_equal(ctx.
b, NULL);
188 assert_ptr_equal(ctx.
priv, NULL);
217 assert_ptr_equal(
object, NULL);
219 assert_ptr_equal(
object, NULL);
221 assert_ptr_equal(
object, NULL);
223 assert_ptr_equal(
object, NULL);
225 assert_ptr_equal(
object, NULL);
227 assert_ptr_equal(
object, NULL);
229 assert_ptr_equal(
object, NULL);
231 assert_ptr_equal(
object, NULL);
255 assert_ptr_not_equal(
object, NULL);
256 assert_string_equal(object->
a,
"A.");
257 assert_string_equal(object->
b,
"B.");
262 assert_ptr_equal(object->
priv, NULL);
263 assert_ptr_equal(object->
bus_ctx_a, NULL);
264 assert_ptr_equal(object->
bus_ctx_b, NULL);
265 assert_true(amxc_llist_is_empty(&object->
entries));
267 assert_ptr_equal(object->
it.llist, NULL);
270 assert_ptr_equal(
object, NULL);
273 assert_ptr_not_equal(
object, NULL);
274 assert_string_equal(object->
a,
"A.");
275 assert_string_equal(object->
b,
"B.");
280 assert_ptr_equal(object->
priv, NULL);
281 assert_ptr_equal(object->
bus_ctx_a, NULL);
282 assert_ptr_equal(object->
bus_ctx_b, NULL);
283 assert_true(amxc_llist_is_empty(&object->
entries));
285 assert_ptr_equal(object->
it.llist, NULL);
288 assert_ptr_equal(
object, NULL);
305 assert_ptr_equal(param, NULL);
307 assert_ptr_equal(param, NULL);
309 assert_ptr_equal(param, NULL);
311 assert_ptr_equal(param, NULL);
313 assert_ptr_equal(param, NULL);
315 assert_ptr_equal(param, NULL);
339 assert_ptr_not_equal(param, NULL);
340 assert_string_equal(param->
a,
"A");
341 assert_string_equal(param->
b,
"B");
346 assert_ptr_equal(param->
priv, NULL);
347 assert_ptr_equal(param->
bus_ctx_a, NULL);
348 assert_ptr_equal(param->
bus_ctx_b, NULL);
349 assert_true(amxc_llist_is_empty(¶m->
entries));
351 assert_ptr_equal(param->
it.llist, NULL);
354 assert_ptr_equal(param, NULL);
357 assert_ptr_not_equal(param, NULL);
358 assert_string_equal(param->
a,
"A");
359 assert_string_equal(param->
b,
"B");
364 assert_ptr_equal(param->
priv, NULL);
365 assert_ptr_equal(param->
bus_ctx_a, NULL);
366 assert_ptr_equal(param->
bus_ctx_b, NULL);
367 assert_true(amxc_llist_is_empty(¶m->
entries));
369 assert_ptr_equal(param->
it.llist, NULL);
372 assert_ptr_equal(param, NULL);
amxs_status_t amxs_sync_ctx_set_local_dm(amxs_sync_ctx_t *ctx, amxd_dm_t *dm_a, amxd_dm_t *dm_b)
Set the local datamodel pointer for the sync root objects.
amxs_status_t amxs_sync_ctx_add_new_copy_object(amxs_sync_ctx_t *ctx, const char *object_a, const char *object_b, int attributes)
Creates and adds a synchronization object to a synchronization context.
enum _amxs_sync_direction amxs_sync_direction_t
enum _amxs_status amxs_status_t
bool amxs_sync_entry_direction_allowed(const amxs_sync_entry_t *entry, amxs_sync_direction_t direction)
amxd_dm_t * test_get_dm(void)
amxs_status_t amxs_sync_object_add_new_copy_object(amxs_sync_object_t *parent, const char *object_a, const char *object_b, int attributes)
Creates and adds a synchronization object to a synchronization object.
amxs_status_t amxs_sync_object_add_new_copy_param(amxs_sync_object_t *object, const char *param_a, const char *param_b, int attributes)
Creates and adds a synchronization parameter to a synchronization object.
amxs_status_t amxs_sync_object_new(amxs_sync_object_t **object, const char *object_a, const char *object_b, int attributes, amxs_translation_cb_t translation_cb, amxs_action_cb_t action_cb, void *priv)
Synchronization object constructor function.
amxs_status_t amxs_sync_object_add_new_object(amxs_sync_object_t *parent, const char *object_a, const char *object_b, int attributes, amxs_translation_cb_t translation_cb, amxs_action_cb_t action_cb, void *priv)
Creates and adds a synchronization object to a synchronization object.
amxs_status_t amxs_sync_object_new_copy(amxs_sync_object_t **object, const char *object_a, const char *object_b, int attributes)
Synchronization object constructor function.
amxs_status_t amxs_sync_object_add_param(amxs_sync_object_t *object, amxs_sync_param_t *param)
Adds a synchronization parameter to a synchronization object.
void amxs_sync_object_delete(amxs_sync_object_t **object)
Synchronization object destructor function.
amxs_status_t amxs_sync_object_add_new_param(amxs_sync_object_t *object, const char *param_a, const char *param_b, int attributes, amxs_translation_cb_t translation_cb, amxs_action_cb_t action_cb, void *priv)
Creates and adds a synchronization parameter to a synchronization object.
amxs_status_t amxs_sync_object_add_object(amxs_sync_object_t *parent, amxs_sync_object_t *child)
Adds a synchronization object to a synchronization object.
amxs_status_t amxs_sync_param_new_copy(amxs_sync_param_t **param, const char *param_a, const char *param_b, int attributes)
Synchronization parameter constructor function.
void amxs_sync_param_delete(amxs_sync_param_t **param)
Synchronization parameter destructor function.
amxs_status_t amxs_sync_param_new(amxs_sync_param_t **param, const char *param_a, const char *param_b, int attributes, amxs_translation_cb_t translation_cb, amxs_action_cb_t action_cb, void *priv)
Synchronization parameter constructor function.
#define AMXS_SYNC_DEFAULT
Default synchronization attributes.
#define AMXS_SYNC_INIT_B
Take the initial values from object B.
#define AMXS_SYNC_ONLY_B_TO_A
Only synchronize from object B to object A.
#define AMXS_SYNC_ONLY_A_TO_B
Only synchronize from object A to object B.
amxs_status_t amxs_sync_object_copy_trans_cb(const amxs_sync_entry_t *entry, amxs_sync_direction_t direction, const amxc_var_t *input, amxc_var_t *output, void *priv)
Translates data from a dm:instance-added or dm:instance-removed event to data suited for an amxb call...
amxs_status_t amxs_sync_param_copy_trans_cb(const amxs_sync_entry_t *entry, amxs_sync_direction_t direction, const amxc_var_t *input, amxc_var_t *output, void *priv)
Translates data from a dm:object-changed event to data suited for an amxb_set call for a single param...
amxs_status_t amxs_sync_param_copy_action_cb(const amxs_sync_entry_t *entry, amxs_sync_direction_t direction, amxc_var_t *data, void *priv)
Sets the new parameter value.
amxs_status_t amxs_sync_object_copy_action_cb(const amxs_sync_entry_t *entry, amxs_sync_direction_t direction, amxc_var_t *data, void *priv)
Adds, removes or updates an object with the given data using an amxb call.
amxs_status_t amxs_sync_ctx_new(amxs_sync_ctx_t **ctx, const char *object_a, const char *object_b, int attributes)
Synchronization context constructor function.
amxs_status_t amxs_sync_ctx_add_new_param(amxs_sync_ctx_t *ctx, const char *param_a, const char *param_b, int attributes, amxs_translation_cb_t translation_cb, amxs_action_cb_t action_cb, void *priv)
Creates and adds a synchronization parameter to a synchronization context.
amxs_status_t amxs_sync_ctx_add_param(amxs_sync_ctx_t *ctx, amxs_sync_param_t *param)
Adds a synchronization parameter to a synchronization context.
amxs_status_t amxs_sync_ctx_add_new_copy_param(amxs_sync_ctx_t *ctx, const char *param_a, const char *param_b, int attributes)
Creates and adds a synchronization parameter to a synchronization context.
void amxs_sync_ctx_delete(amxs_sync_ctx_t **ctx)
Synchronization context destructor function.
amxs_status_t amxs_sync_ctx_add_new_object(amxs_sync_ctx_t *ctx, const char *object_a, const char *object_b, int attributes, amxs_translation_cb_t translation_cb, amxs_action_cb_t action_cb, void *priv)
Creates and adds a synchronization object to a synchronization context.
amxs_status_t amxs_sync_ctx_init(amxs_sync_ctx_t *ctx, const char *object_a, const char *object_b, int attributes)
Synchronization context initialization function.
amxs_status_t amxs_sync_ctx_add_object(amxs_sync_ctx_t *ctx, amxs_sync_object_t *object)
Adds a synchronization object to a synchronization context.
void amxs_sync_ctx_clean(amxs_sync_ctx_t *ctx)
Synchronization context cleanup function.
amxs_sync_entry_type_t type
amxb_bus_ctx_t * bus_ctx_a
amxs_translation_cb_t translation_cb
amxc_llist_t subscriptions
amxs_action_cb_t action_cb
amxb_bus_ctx_t * bus_ctx_b
void test_amxs_sync_ctx_add_object(UNUSED void **state)
void test_amxs_sync_object_add_object(UNUSED void **state)
void test_amxs_sync_ctx_new_args(UNUSED void **state)
void test_amxs_sync_object_new(UNUSED void **state)
void test_amxs_sync_ctx_init(UNUSED void **state)
void test_amxs_sync_object_delete(UNUSED void **state)
void test_amxs_sync_param_new(UNUSED void **state)
void test_amxs_sync_ctx_clean(UNUSED void **state)
void test_amxs_sync_ctx_init_args(UNUSED void **state)
void test_amxs_sync_ctx_delete(UNUSED void **state)
void test_amxs_sync_ctx_set_dm(UNUSED void **state)
void test_amxs_sync_attr_update(UNUSED void **state)
void test_amxs_sync_param_delete(UNUSED void **state)
void test_amxs_sync_ctx_add_param(UNUSED void **state)
void test_amxs_sync_object_add_param(UNUSED void **state)
void test_amxs_sync_param_new_args(UNUSED void **state)
static amxs_status_t test_action_cb(UNUSED const amxs_sync_entry_t *entry, UNUSED amxs_sync_direction_t direction, UNUSED amxc_var_t *data, UNUSED void *priv)
static amxs_status_t test_trans_cb(UNUSED const amxs_sync_entry_t *entry, UNUSED amxs_sync_direction_t direction, UNUSED const amxc_var_t *input, UNUSED amxc_var_t *output, UNUSED void *priv)
void test_amxs_sync_object_new_args(UNUSED void **state)
void test_amxs_sync_ctx_new(UNUSED void **state)