eldbus: Add a new proxy event to notify when properties are cached

This commit is contained in:
José Roberto de Souza 2013-08-30 10:15:10 -03:00
parent a007a3af13
commit 8b69231897
2 changed files with 14 additions and 3 deletions

View File

@ -733,6 +733,7 @@ _props_get_all(void *data, const Eldbus_Message *msg, Eldbus_Pending *pending EI
Eldbus_Proxy *proxy = data; Eldbus_Proxy *proxy = data;
Eldbus_Message_Iter *dict; Eldbus_Message_Iter *dict;
const char *name, *error_msg; const char *name, *error_msg;
Eldbus_Proxy_Event_Property_Loaded event;
if (eldbus_message_error_get(msg, &name, &error_msg)) 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; return;
} }
eldbus_message_iter_dict_iterate(dict, "sv", _property_iter, proxy); 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 EAPI void

View File

@ -111,6 +111,7 @@ typedef enum
ELDBUS_PROXY_EVENT_PROPERTY_CHANGED = 0, ELDBUS_PROXY_EVENT_PROPERTY_CHANGED = 0,
ELDBUS_PROXY_EVENT_PROPERTY_REMOVED, ELDBUS_PROXY_EVENT_PROPERTY_REMOVED,
ELDBUS_PROXY_EVENT_DEL, ELDBUS_PROXY_EVENT_DEL,
ELDBUS_PROXY_EVENT_PROPERTY_LOADED,
ELDBUS_PROXY_EVENT_LAST /**< sentinel, not a real event type */ ELDBUS_PROXY_EVENT_LAST /**< sentinel, not a real event type */
} Eldbus_Proxy_Event_Type; } Eldbus_Proxy_Event_Type;
@ -121,6 +122,11 @@ typedef struct _Eldbus_Proxy_Event_Property_Changed
const Eina_Value *value; const Eina_Value *value;
} Eldbus_Proxy_Event_Property_Changed; } 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 typedef struct _Eldbus_Proxy_Event_Property_Removed
{ {
const char *interface; const char *interface;