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
