diff options
author | Guilherme Lepsch <lepsch@expertisesolutions.com.br> | 2015-02-10 11:17:08 -0200 |
---|---|---|
committer | Felipe Magno de Almeida <felipe@expertisesolutions.com.br> | 2015-07-21 22:41:56 -0300 |
commit | 59b9f512364db1f1aa1346be14ace3d20c25ba1d (patch) | |
tree | 2cf1571cee0f6d07a3d9702a8aeeab38d9c3764c /src/lib/eldbus | |
parent | ddb0c742b5c9654b9e42fe8d784d451614833bf7 (diff) | |
download | efl-59b9f512364db1f1aa1346be14ace3d20c25ba1d.tar.gz |
Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now.
Diffstat (limited to 'src/lib/eldbus')
-rw-r--r-- | src/lib/eldbus/eldbus_model_arguments.c | 56 | ||||
-rw-r--r-- | src/lib/eldbus/eldbus_model_arguments_private.h | 3 | ||||
-rw-r--r-- | src/lib/eldbus/eldbus_model_method.c | 4 | ||||
-rw-r--r-- | src/lib/eldbus/eldbus_model_proxy.c | 53 | ||||
-rw-r--r-- | src/lib/eldbus/eldbus_model_proxy_private.h | 3 |
5 files changed, 92 insertions, 27 deletions
diff --git a/src/lib/eldbus/eldbus_model_arguments.c b/src/lib/eldbus/eldbus_model_arguments.c index 9b2e460a45..dc622e66c9 100644 --- a/src/lib/eldbus/eldbus_model_arguments.c +++ b/src/lib/eldbus/eldbus_model_arguments.c @@ -31,7 +31,8 @@ _eldbus_model_arguments_eo_base_constructor(Eo *obj, Eldbus_Model_Arguments_Data pd->obj = obj; pd->load.status = EFL_MODEL_LOAD_STATUS_UNLOADED; pd->properties_array = NULL; - pd->properties = eina_hash_string_superfast_new(_eldbus_model_arguments_properties_data_free_cb); + pd->properties_desc = NULL; + pd->properties = NULL; pd->pending_list = NULL; pd->proxy = NULL; pd->arguments = NULL; @@ -63,7 +64,11 @@ _eldbus_model_arguments_eo_base_destructor(Eo *obj, Eldbus_Model_Arguments_Data _eldbus_model_arguments_unload(pd); eina_value_free(pd->properties); +<<<<<<< HEAD efl_model_value_struct_desc_free(pd->properties_desc); +======= + emodel_value_struct_desc_free(pd->properties_desc); +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. eina_stringshare_del(pd->name); eldbus_proxy_unref(pd->proxy); @@ -83,7 +88,11 @@ _eldbus_model_arguments_efl_model_base_properties_get(Eo *obj EINA_UNUSED, if (!(pd->load.status & EFL_MODEL_LOAD_STATUS_LOADED_PROPERTIES)) { ERR("%s", "o not loaded."); +<<<<<<< HEAD return EFL_MODEL_LOAD_STATUS_ERROR; +======= + return EMODEL_LOAD_STATUS_ERROR; +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. } *(Eina_Array**)properties_array = pd->properties_array; @@ -112,7 +121,24 @@ _eldbus_model_arguments_efl_model_base_properties_load(Eo *obj, Eldbus_Model_Arg EINA_SAFETY_ON_FALSE_RETURN(ret); } +<<<<<<< HEAD efl_model_load_set(pd->obj, &pd->load, EFL_MODEL_LOAD_STATUS_LOADED_PROPERTIES); +======= + if (arguments_count > 0) + { + if (!pd->properties_desc) + { + pd->properties_desc = emodel_value_struct_desc_new( + arguments_count, + _eldbus_model_arguments_member_setup_cb, + pd); + } + + pd->properties = eina_value_struct_new(pd->properties_desc); + } + + emodel_load_set(pd->obj, &pd->load, EMODEL_LOAD_STATUS_LOADED_PROPERTIES); +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. } static Efl_Model_Load_Status @@ -133,9 +159,14 @@ _eldbus_model_arguments_efl_model_base_property_set(Eo *obj EINA_UNUSED, return EFL_MODEL_LOAD_STATUS_ERROR; } +<<<<<<< HEAD // TODO: //Eina_Bool ret = eina_value_struct_value_set(pd->properties, property, &value); //EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EFL_MODEL_LOAD_STATUS_ERROR); +======= + Eina_Bool ret = eina_value_struct_value_set(pd->properties, property, &value); + EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EMODEL_LOAD_STATUS_ERROR); +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. return pd->load.status; } @@ -156,11 +187,19 @@ _eldbus_model_arguments_efl_model_base_property_get(Eo *obj EINA_UNUSED, if (!_eldbus_model_arguments_is_output_argument(pd, property)) { WRN("Property (argument) not found or it is for input only: %s", property); +<<<<<<< HEAD return EFL_MODEL_LOAD_STATUS_ERROR; } Eina_Bool ret = eina_value_struct_value_get(pd->properties, property, &pd->tmp_value); EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EFL_MODEL_LOAD_STATUS_ERROR); +======= + return EMODEL_LOAD_STATUS_ERROR; + } + + Eina_Bool ret = eina_value_struct_value_get(pd->properties, property, value); + EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EMODEL_LOAD_STATUS_ERROR); +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. *value = &pd->tmp_value; @@ -305,10 +344,14 @@ eldbus_model_arguments_process_arguments(Eldbus_Model_Arguments_Data *pd, if (ELDBUS_INTROSPECTION_ARGUMENT_DIRECTION_IN != argument->direction) { const Eina_Stringshare *property = eina_array_data_get(pd->properties_array, i); - EINA_SAFETY_ON_NULL_GOTO(property, cleanup); + EINA_SAFETY_ON_NULL_GOTO(property, on_error); bool ret = _eldbus_model_arguments_property_set(pd, value_struct, property); +<<<<<<< HEAD EINA_SAFETY_ON_FALSE_GOTO(ret, cleanup); +======= + EINA_SAFETY_ON_FALSE_GOTO(ret, on_error); +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. changed = true; } @@ -318,13 +361,22 @@ eldbus_model_arguments_process_arguments(Eldbus_Model_Arguments_Data *pd, if (changed) { +<<<<<<< HEAD Efl_Model_Property_Event evt = {.changed_properties = pd->properties}; eo_do(pd->obj, eo_event_callback_call(EFL_MODEL_BASE_EVENT_PROPERTIES_CHANGED, &evt)); +======= + Emodel_Property_Event evt = {.changed_properties = pd->properties}; + eo_do(pd->obj, eo_event_callback_call(EMODEL_EVENT_PROPERTIES_CHANGED, &evt)); +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. } result = true; +<<<<<<< HEAD cleanup: +======= +on_error: +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. eina_value_free(value_struct); return result; } diff --git a/src/lib/eldbus/eldbus_model_arguments_private.h b/src/lib/eldbus/eldbus_model_arguments_private.h index 9f6b6d7c52..1181c1af43 100644 --- a/src/lib/eldbus/eldbus_model_arguments_private.h +++ b/src/lib/eldbus/eldbus_model_arguments_private.h @@ -16,7 +16,8 @@ struct _Eldbus_Model_Arguments_Data Efl_Model_Load load; Eldbus_Proxy *proxy; Eina_Array *properties_array; - Eina_Hash *properties; + Eina_Value_Struct_Desc *properties_desc; + Eina_Value *properties; Eina_Stringshare *name; Eina_List *pending_list; const Eina_List *arguments; diff --git a/src/lib/eldbus/eldbus_model_method.c b/src/lib/eldbus/eldbus_model_method.c index e36ec4a245..5d9804ea67 100644 --- a/src/lib/eldbus/eldbus_model_method.c +++ b/src/lib/eldbus/eldbus_model_method.c @@ -60,11 +60,7 @@ _eldbus_model_method_call(Eo *obj EINA_UNUSED, Eldbus_Model_Method_Data *pd EINA continue; const Eina_Stringshare *name = eina_array_data_get(data->properties_array, i); -<<<<<<< HEAD EINA_SAFETY_ON_NULL_GOTO(name, on_error); -======= - EINA_SAFETY_ON_NULL_GOTO(name, error); ->>>>>>> 2ca5935... Emodel API changes: properties_list changed from Eina_List to Eina_Array. Eina_Value value = {0}; Eina_Bool ret = eina_value_struct_value_get(data->properties, name, &value); diff --git a/src/lib/eldbus/eldbus_model_proxy.c b/src/lib/eldbus/eldbus_model_proxy.c index 85b5a3dfce..bad39d1042 100644 --- a/src/lib/eldbus/eldbus_model_proxy.c +++ b/src/lib/eldbus/eldbus_model_proxy.c @@ -51,7 +51,8 @@ _eldbus_model_proxy_eo_base_constructor(Eo *obj, Eldbus_Model_Proxy_Data *pd) pd->object = NULL; pd->proxy = NULL; pd->properties_array = NULL; - pd->properties = eina_hash_string_superfast_new(_eldbus_model_proxy_properties_data_free_cb); + pd->properties_desc = NULL; + pd->properties = NULL; pd->children_list = NULL; pd->name = NULL; pd->pending_list = NULL; @@ -106,24 +107,7 @@ _eldbus_model_proxy_efl_model_base_properties_get(Eo *obj EINA_UNUSED, return EMODEL_LOAD_STATUS_ERROR; } - if (NULL == pd->properties_array) - { - pd->properties_array = eina_array_new(eina_list_count(pd->interface->properties)); - EINA_SAFETY_ON_NULL_RETURN_VAL(pd->properties_array, EMODEL_LOAD_STATUS_ERROR); - - Eina_List *it; - Eldbus_Introspection_Property *property; - EINA_LIST_FOREACH(pd->interface->properties, it, property) - { - Eina_Stringshare *property = eina_stringshare_add(property->name); - EINA_SAFETY_ON_NULL_RETURN_VAL(property, EMODEL_LOAD_STATUS_ERROR); - - Eina_Bool ret = eina_array_push(pd->properties_array, property); - EINA_SAFETY_ON_FALSE_RETURN_VAL(ret, EMODEL_LOAD_STATUS_ERROR); - } - } - - *(Eina_List**)properties_array = pd->properties_array; + *(Eina_Array**)properties_array = pd->properties_array; return pd->load.status; } @@ -535,7 +519,11 @@ _eldbus_model_proxy_property_invalidated_cb(void *data, // TODO: eldbus_proxy_property_get(event->name) ? +<<<<<<< HEAD Efl_Model_Property_Event evt = {0}; +======= + Emodel_Property_Event evt = {0}; +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. evt.invalidated_properties = eina_array_new(1); EINA_SAFETY_ON_NULL_RETURN(evt.invalidated_properties); @@ -573,12 +561,19 @@ _eldbus_model_proxy_property_get_all_cb(void *data, if (!pd->properties_desc) { +<<<<<<< HEAD pd->properties_desc = efl_model_value_struct_desc_new( +======= + pd->properties_desc = emodel_value_struct_desc_new( +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. eina_list_count(pd->interface->properties), _eldbus_model_proxy_member_setup_cb, pd); } +<<<<<<< HEAD EINA_SAFETY_ON_TRUE_RETURN(pd->properties); +======= +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. pd->properties = eina_value_struct_new(pd->properties_desc); bool changed = false; @@ -600,8 +595,11 @@ _eldbus_model_proxy_property_get_all_cb(void *data, eina_value_free(struct_value); EINA_SAFETY_ON_FALSE_RETURN(ret); +<<<<<<< HEAD fprintf(stderr, "arg0: %s\n", eina_value_to_string(&arg0)); +======= +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. ret = eina_value_struct_value_set(pd->properties, property, &arg0); eina_value_flush(&arg0); EINA_SAFETY_ON_FALSE_RETURN(ret); @@ -613,11 +611,19 @@ _eldbus_model_proxy_property_get_all_cb(void *data, if (changed) { +<<<<<<< HEAD Efl_Model_Property_Event evt = {.changed_properties = pd->properties_array}; eo_do(pd->obj, eo_event_callback_call(EFL_MODEL_BASE_EVENT_PROPERTIES_CHANGED, &evt)); } efl_model_load_set(pd->obj, &pd->load, EFL_MODEL_LOAD_STATUS_LOADED_PROPERTIES); +======= + Emodel_Property_Event evt = {.changed_properties = pd->properties}; + eo_do(pd->obj, eo_event_callback_call(EMODEL_EVENT_PROPERTIES_CHANGED, &evt)); + } + + emodel_load_set(pd->obj, &pd->load, EMODEL_LOAD_STATUS_LOADED_PROPERTIES); +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. } @@ -636,7 +642,11 @@ _eldbus_model_proxy_property_set_cb(void *data, if (eldbus_message_error_get(msg, &error_name, &error_text)) { ERR("%s: %s", error_name, error_text); +<<<<<<< HEAD efl_model_error_notify(pd->obj); +======= + emodel_error_notify(pd->obj); +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. goto on_error; } @@ -645,8 +655,13 @@ _eldbus_model_proxy_property_set_cb(void *data, &property_set_data->value); EINA_SAFETY_ON_FALSE_GOTO(ret, on_error); +<<<<<<< HEAD Efl_Model_Property_Event evt = {.changed_properties = pd->properties_array}; eo_do(pd->obj, eo_event_callback_call(EFL_MODEL_BASE_EVENT_PROPERTIES_CHANGED, &evt)); +======= + Emodel_Property_Event evt = {.changed_properties = pd->properties}; + eo_do(pd->obj, eo_event_callback_call(EMODEL_EVENT_PROPERTIES_CHANGED, &evt)); +>>>>>>> 0bf80ad... Emodel API changes: Emodel_Property_Event::changed_properties as Eina_Value now. on_error: _eldbus_model_proxy_property_set_data_free(property_set_data); diff --git a/src/lib/eldbus/eldbus_model_proxy_private.h b/src/lib/eldbus/eldbus_model_proxy_private.h index 26a815b042..2a7a5edd1d 100644 --- a/src/lib/eldbus/eldbus_model_proxy_private.h +++ b/src/lib/eldbus/eldbus_model_proxy_private.h @@ -17,7 +17,8 @@ struct _Eldbus_Model_Proxy_Data Eldbus_Object *object; Eldbus_Proxy *proxy; Eina_Array *properties_array; - Eina_Hash *properties; + Eina_Value_Struct_Desc *properties_desc; + Eina_Value *properties; Eina_List *children_list; Eina_Stringshare *name; Eina_List *pending_list; |