summaryrefslogtreecommitdiff
path: root/src/lib/eldbus
diff options
context:
space:
mode:
authorGuilherme Lepsch <lepsch@expertisesolutions.com.br>2015-02-10 11:17:08 -0200
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>2015-07-21 22:41:56 -0300
commit59b9f512364db1f1aa1346be14ace3d20c25ba1d (patch)
tree2cf1571cee0f6d07a3d9702a8aeeab38d9c3764c /src/lib/eldbus
parentddb0c742b5c9654b9e42fe8d784d451614833bf7 (diff)
downloadefl-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.c56
-rw-r--r--src/lib/eldbus/eldbus_model_arguments_private.h3
-rw-r--r--src/lib/eldbus/eldbus_model_method.c4
-rw-r--r--src/lib/eldbus/eldbus_model_proxy.c53
-rw-r--r--src/lib/eldbus/eldbus_model_proxy_private.h3
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;