From 5dd315ea6c88ddfb0ce429bb4e1d4824e646884e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Roberto=20de=20Souza?= Date: Fri, 30 Aug 2013 10:15:10 -0300 Subject: [PATCH] eldbus: Add a new proxy event to notify when properties are cached --- src/lib/eldbus_proxy.c | 11 ++++++++--- src/lib/eldbus_proxy.h | 6 ++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/lib/eldbus_proxy.c b/src/lib/eldbus_proxy.c index c0fceef..4b2565d 100644 --- a/src/lib/eldbus_proxy.c +++ b/src/lib/eldbus_proxy.c @@ -333,7 +333,7 @@ _property_changed_iter(void *data, const void *key, Eldbus_Message_Iter *var) event.value = value; event.proxy = proxy; _eldbus_proxy_event_callback_call(proxy, ELDBUS_PROXY_EVENT_PROPERTY_CHANGED, - &event); + &event); eina_value_free(st_value); eina_value_flush(&stack_value); } @@ -689,7 +689,7 @@ eldbus_proxy_property_get_all(Eldbus_Proxy *proxy, Eldbus_Message_Cb cb, const v { ELDBUS_PROXY_CHECK_RETVAL(proxy, NULL); return eldbus_proxy_call(proxy->obj->properties, "GetAll", cb, data, -1, - "s", proxy->interface); + "s", proxy->interface); } EAPI Eldbus_Signal_Handler * @@ -698,7 +698,7 @@ eldbus_proxy_properties_changed_callback_add(Eldbus_Proxy *proxy, Eldbus_Signal_ Eldbus_Signal_Handler *sh; ELDBUS_PROXY_CHECK_RETVAL(proxy, NULL); sh = eldbus_proxy_signal_handler_add(proxy->obj->properties, - "PropertiesChanged", cb, data); + "PropertiesChanged", cb, data); EINA_SAFETY_ON_NULL_RETURN_VAL(sh, NULL); eldbus_signal_handler_match_extra_set(sh, "arg0", proxy->interface, NULL); return sh; @@ -733,6 +733,7 @@ _props_get_all(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EI Eldbus_Proxy *proxy = data; Eldbus_Message_Iter *dict; const char *name, *error_msg; + Eldbus_Proxy_Event_Property_Loaded event; if (eldbus_message_error_get(msg, &name, &error_msg)) { @@ -750,6 +751,10 @@ _props_get_all(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EI return; } eldbus_message_iter_dict_iterate(dict, "sv", _property_iter, proxy); + + event.proxy = proxy; + _eldbus_proxy_event_callback_call(proxy, ELDBUS_PROXY_EVENT_PROPERTY_LOADED, + &event); } EAPI void diff --git a/src/lib/eldbus_proxy.h b/src/lib/eldbus_proxy.h index 9249948..5752001 100644 --- a/src/lib/eldbus_proxy.h +++ b/src/lib/eldbus_proxy.h @@ -111,6 +111,7 @@ typedef enum ELDBUS_PROXY_EVENT_PROPERTY_CHANGED = 0, ELDBUS_PROXY_EVENT_PROPERTY_REMOVED, ELDBUS_PROXY_EVENT_DEL, + ELDBUS_PROXY_EVENT_PROPERTY_LOADED, ELDBUS_PROXY_EVENT_LAST /**< sentinel, not a real event type */ } Eldbus_Proxy_Event_Type; @@ -121,6 +122,11 @@ typedef struct _Eldbus_Proxy_Event_Property_Changed const Eina_Value *value; } Eldbus_Proxy_Event_Property_Changed; +typedef struct _Eldbus_Proxy_Event_Property_Loaded +{ + const Eldbus_Proxy *proxy; +} Eldbus_Proxy_Event_Property_Loaded; + typedef struct _Eldbus_Proxy_Event_Property_Removed { const char *interface; -- 2.7.4