forked from enlightenment/efl
edbus: Add edbus_proxy_property_local_get and get_all
Patch by: José Roberto de Souza <zehortigoza@profusion.mobi> SVN revision: 78546
This commit is contained in:
parent
6f52b71822
commit
e8b9c7d42e
|
@ -15,6 +15,22 @@ _timer1_cb(void *data)
|
|||
return EINA_TRUE;
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
_read_cache(void *data)
|
||||
{
|
||||
EDBus_Proxy *proxy = data;
|
||||
const char *txt;
|
||||
int num;
|
||||
Eina_Value *v = edbus_proxy_property_local_get(proxy, "text");
|
||||
eina_value_get(v, &txt);
|
||||
v = edbus_proxy_property_local_get(proxy, "int32");
|
||||
eina_value_get(v, &num);
|
||||
|
||||
printf("Read cache: %s | %d\n", txt, num);
|
||||
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
on_plus_one(void *data, const EDBus_Message *msg, EDBus_Pending *pending)
|
||||
{
|
||||
|
@ -298,7 +314,8 @@ main(void)
|
|||
pending = edbus_proxy_property_get(test2_proxy, "Resp2", get_property_resp2, test2_proxy);
|
||||
edbus_proxy_event_callback_add(test2_proxy, EDBUS_PROXY_EVENT_PROPERTY_CHANGED, _property_changed, NULL);
|
||||
|
||||
ecore_timer_add(20, _timer1_cb, NULL);
|
||||
ecore_timer_add(10, _read_cache, test2_proxy);
|
||||
ecore_timer_add(50, _timer1_cb, NULL);
|
||||
|
||||
ecore_main_loop_begin();
|
||||
|
||||
|
|
|
@ -91,6 +91,11 @@ EAPI EDBus_Pending *edbus_object_introspect(EDBus_Object *obj, EDBus_Mess
|
|||
|
||||
/**
|
||||
* Enable or disable local cache of properties.
|
||||
*
|
||||
* After enable you can call edbus_proxy_property_local_get() or
|
||||
* edbus_proxy_property_local_get_all() to get cached properties.
|
||||
*
|
||||
* @note After enable, it will asynchrony get the properties values.
|
||||
*/
|
||||
EAPI void edbus_proxy_properties_monitor(EDBus_Proxy *proxy, Eina_Bool enable);
|
||||
|
||||
|
@ -98,6 +103,22 @@ EAPI EDBus_Pending *edbus_proxy_property_get(EDBus_Proxy *proxy, const ch
|
|||
EAPI EDBus_Pending *edbus_proxy_property_set(EDBus_Proxy *proxy, const char *name, char type, const void *value, EDBus_Message_Cb cb, const void *data) EINA_ARG_NONNULL(1, 2, 4);
|
||||
EAPI EDBus_Pending *edbus_proxy_property_get_all(EDBus_Proxy *proxy, EDBus_Message_Cb cb, const void *data) EINA_ARG_NONNULL(1, 2);
|
||||
EAPI EDBus_Signal_Handler *edbus_proxy_properties_changed_callback_add(EDBus_Proxy *proxy, EDBus_Message_Cb cb, const void *data) EINA_ARG_NONNULL(1, 2);
|
||||
|
||||
/**
|
||||
* Return the cached value of property.
|
||||
* This only work if you have enable edbus_proxy_properties_monitor or
|
||||
* if you have call edbus_proxy_event_callback_add of type
|
||||
* EDBUS_PROXY_EVENT_PROPERTY_CHANGED and the property you want had changed.
|
||||
*/
|
||||
EAPI Eina_Value *edbus_proxy_property_local_get(EDBus_Proxy *proxy, const char *name) EINA_ARG_NONNULL(1, 2);
|
||||
|
||||
/**
|
||||
* Return a Eina_Hash with all cached properties.
|
||||
* This only work if you have enable edbus_proxy_properties_monitor or
|
||||
* if you have call edbus_proxy_event_callback_add of type
|
||||
* EDBUS_PROXY_EVENT_PROPERTY_CHANGED.
|
||||
*/
|
||||
EAPI const Eina_Hash *edbus_proxy_property_local_get_all(EDBus_Proxy *proxy) EINA_ARG_NONNULL(1);
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
|
|
@ -753,3 +753,20 @@ edbus_proxy_properties_monitor(EDBus_Proxy *proxy, Eina_Bool enable)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
EAPI Eina_Value *
|
||||
edbus_proxy_property_local_get(EDBus_Proxy *proxy, const char *name)
|
||||
{
|
||||
EDBUS_PROXY_CHECK_RETVAL(proxy, NULL);
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL);
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(proxy->props, NULL);
|
||||
return eina_hash_find(proxy->props, name);
|
||||
}
|
||||
|
||||
EAPI const Eina_Hash *
|
||||
edbus_proxy_property_local_get_all(EDBus_Proxy *proxy)
|
||||
{
|
||||
EDBUS_PROXY_CHECK_RETVAL(proxy, NULL);
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(proxy->props, NULL);
|
||||
return proxy->props;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue