zeh,

I think you should wrap the callback as well... expect people parse
the complex properties are not that good, otherwise they would just
register the signal directly.

Create a struct and add members: str: ifacename, hash:
propname=propvalue (eina_value) and list of invalidated properties
(str). This should be the event_info for the added signal. Similarly
for the del signal you give it a string with removed interface.

I'd say there is no need to have eldbus_object_signal_handler_add()
and eldbus_object_manager_interfaces_removed(), just use the already
existing eldbus event callback system. You should always listen for
that while you do monitor() as you cache properties already... then
you already created the Eina_Value, you just need to put those in the
hash when you emit the signal.



On Mon, Sep 2, 2013 at 4:16 PM, José Roberto de Souza - Enlightenment
Git <[email protected]> wrote:
> zehortigoza pushed a commit to branch master.
>
> commit 356a4aa8e96c5df87d24384b5a0d9bcb9cd636b3
> Author: José Roberto de Souza <[email protected]>
> Date:   Fri Aug 30 10:23:28 2013 -0300
>
>     eldbus: Add eldbus_object_manager_interfaces_added/removed()
> ---
>  src/lib/eldbus/eldbus_freedesktop.c | 14 ++++++++++++++
>  src/lib/eldbus/eldbus_freedesktop.h |  4 ++++
>  2 files changed, 18 insertions(+)
>
> diff --git a/src/lib/eldbus/eldbus_freedesktop.c 
> b/src/lib/eldbus/eldbus_freedesktop.c
> index 2862753..f0a79bd 100644
> --- a/src/lib/eldbus/eldbus_freedesktop.c
> +++ b/src/lib/eldbus/eldbus_freedesktop.c
> @@ -81,6 +81,20 @@ eldbus_object_managed_objects_get(Eldbus_Object *obj, 
> Eldbus_Message_Cb cb, cons
>     return p;
>  }
>
> +EAPI Eldbus_Signal_Handler *
> +eldbus_object_manager_interfaces_added(Eldbus_Object *obj, Eldbus_Signal_Cb 
> cb, const void *cb_data)
> +{
> +   return eldbus_object_signal_handler_add(obj, 
> ELDBUS_FDO_INTERFACE_OBJECT_MANAGER,
> +                                           "InterfacesAdded", cb, cb_data);
> +}
> +
> +EAPI Eldbus_Signal_Handler *
> +eldbus_object_manager_interfaces_removed(Eldbus_Object *obj, 
> Eldbus_Signal_Cb cb, const void *cb_data)
> +{
> +   return eldbus_object_signal_handler_add(obj, 
> ELDBUS_FDO_INTERFACE_OBJECT_MANAGER,
> +                                           "InterfacesRemoved", cb, cb_data);
> +}
> +
>  EAPI Eldbus_Pending *
>  eldbus_hello(Eldbus_Connection *conn, Eldbus_Message_Cb cb, const void 
> *cb_data)
>  {
> diff --git a/src/lib/eldbus/eldbus_freedesktop.h 
> b/src/lib/eldbus/eldbus_freedesktop.h
> index 5644d44..8a66b06 100644
> --- a/src/lib/eldbus/eldbus_freedesktop.h
> +++ b/src/lib/eldbus/eldbus_freedesktop.h
> @@ -139,6 +139,10 @@ EAPI const Eina_Hash      
> *eldbus_proxy_property_local_get_all(Eldbus_Proxy *pro
>
>  EAPI Eldbus_Pending        *eldbus_object_managed_objects_get(Eldbus_Object 
> *obj, Eldbus_Message_Cb cb, const void *data) EINA_ARG_NONNULL(1, 2);
>
> +EAPI Eldbus_Signal_Handler 
> *eldbus_object_manager_interfaces_added(Eldbus_Object *obj, Eldbus_Signal_Cb 
> cb, const void *cb_data) EINA_ARG_NONNULL(1);
> +
> +EAPI Eldbus_Signal_Handler 
> *eldbus_object_manager_interfaces_removed(Eldbus_Object *obj, 
> Eldbus_Signal_Cb cb, const void *cb_data) EINA_ARG_NONNULL(1);
> +
>  /**
>   * @}
>   */
>
> --
>
> ------------------------------------------------------------------------------
> Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
> Discover the easy way to master current and previous Microsoft technologies
> and advance your career. Get an incredible 1,500+ hours of step-by-step
> tutorial videos with LearnDevNow. Subscribe today and save!
> http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk



-- 
Gustavo Sverzut Barbieri
--------------------------------------
Mobile: +55 (19) 9225-2202
Contact: http://www.gustavobarbieri.com.br/contact

------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to