Bug 5713

Summary: [PATCH] glib bindings - enable objects to use parent objects methods/signals
Product: dbus Reporter: Andre Moreira Magalhaes <andrunko>
Component: GLibAssignee: Rob Taylor <rob.taylor>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: high CC: johnp, nud, pvanhoof
Version: unspecified   
Hardware: All   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: Patch attached
ginterfaces support
test case

Description Andre Moreira Magalhaes 2006-01-25 04:03:50 UTC
Patch for dbus glib to enable objects to use parent objects methods/signals set
with dbus_g_object_type_install_info. 

With this patch you can do something like:

object_base.xml
 define methods and signals
object_child1.xml
 define another methods and signals

object_base.c
object_base_class_init (ObjectBaseClass *klass)
 ....
 dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass),
           &dbus_glib_object_base_object_info);
 ....

object_child1.c
object_child1_class_init (ObjectChild1Class *klass)
 ....
 dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass),
           &dbus_glib_object_child1_object_info);
 ....

and use the dbus interface provided by the base class trough the child
object class.
Comment 1 Andre Moreira Magalhaes 2006-01-25 04:05:03 UTC
Created attachment 4457 [details] [review]
Patch attached
Comment 2 John (J5) Palmieri 2006-02-11 08:32:07 UTC
Rob what do you think of this patch?  

BTW Andre for future refrence, large patches like these should be sent to the
list also.  
Comment 3 Andre Moreira Magalhaes 2006-02-13 07:49:51 UTC
(In reply to comment #2)
> Rob what do you think of this patch?  
> 
> BTW Andre for future refrence, large patches like these should be sent to the
> list also.  

Hi John,

Actually i did sent a mail to the list
(http://lists.freedesktop.org/archives/dbus/2006-January/004008.html) and before
do this i discussed it with Robert McQueen and Robtaylor on #dbus at freenode.
They just said me to write a test case for the patch and then it would be ok to
commit it, but i hadn't enough time do this yet :).

Andrunko
Comment 4 John (J5) Palmieri 2006-02-25 07:53:56 UTC
In latest release
Comment 5 Andre Moreira Magalhaes 2006-02-25 11:09:21 UTC
(In reply to comment #4)
> In latest release

What do you mean by that? Its not on 0.6.1 nor in CVS. I still need to make the
test case.

Andrunko
Comment 6 John (J5) Palmieri 2006-02-28 02:58:55 UTC
Ok, I thought it was committed.  Can we get a test case soonish.  I can always
do a 0.61.1
Comment 7 Steve Frécinaux 2006-07-10 17:45:45 UTC
Created attachment 6182 [details] [review]
ginterfaces support

This patch is roughly the same as the previous one. Changes are:
 - it now supports GInterface lookup, and linking introspection information
   to GInterfaces.
 - fixed crasher in introspection (hash table was freed in the loop but was
   created before the loop)
Comment 8 Robert McQueen 2006-07-11 17:07:39 UTC
This updated patch looks excellent, is there any chance of a test case to go
with it, just to confirm that the method and signal lookups with inheritance and
interfaces work as expected?
Comment 9 Steve Frécinaux 2006-07-15 15:22:13 UTC
Created attachment 6233 [details]
test case

Here is a small test case for all this stuff.

It comprises a server and a client. The server expose an object which inherits
from another object. both of them implements one ginterface. Both ginterfaces
and the parent object correspond to a dbus interface. The client tries to call
the method from each of these three dbus interfaces.

The integration to run-test.sh is not done since J5 told me that wasn't
necessary.
Comment 10 Steve Frécinaux 2006-08-01 18:54:21 UTC
Any news on this one ?
Comment 11 Philip Van Hoof 2006-08-03 07:31:20 UTC
Adding myself in CC, *interested*
Comment 12 Rob Taylor 2006-08-27 09:27:23 UTC
I'll be working on integrating nud's test into the testsuite, then i'll commit ;)
Comment 13 Rob Taylor 2006-10-25 10:09:52 UTC
Fixed in 0.72

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.