GNOME Bugzilla – Bug 560034
Rewrite D-Bus server support
Last modified: 2008-12-14 19:36:56 UTC
The current D-Bus server support has some limitations in the support of container types due to the necessary conversions to dbus-glib recognized types. It probably makes sense to avoid the dbus-glib type system and directly use the libdbus API.
Created attachment 122269 [details] [review] Incomplete patch This patch uses libdbus to read and write D-Bus values, however, the type support is still incomplete.
Created attachment 122722 [details] [review] Updated patch I've completed draft support for reading and writing values of all types: basic types, variants, arrays, structs, and hash tables. Memory management and conflict handling with temporary variables still need to be implemented. Still missing to complete server support: properties, signals, introspection, and error handling. The type serialization can be reused for D-Bus client support. It probably makes sense to first switch client support to libdbus as this should require less work.
2008-11-21 Jürg Billeter <j@bitron.ch> * gobject/Makefile.am: * gobject/valaccodebasemodule.vala: * gobject/valadbusclientmodule.vala: * gobject/valadbusmodule.vala: * vapi/dbus-glib-1.vapi: Add partial static D-Bus client support without dbus-glib marshalling
2008-11-21 Jürg Billeter <j@bitron.ch> * gobject/valadbusclientmodule.vala: * gobject/valadbusmodule.vala: Support serialization and deserialization of arrays in static D-Bus clients
2008-11-21 Jürg Billeter <j@bitron.ch> * gobject/valadbusclientmodule.vala: * gobject/valadbusmodule.vala: Support serialization and deserialization of structs in static D-Bus clients
2008-11-21 Jürg Billeter <j@bitron.ch> * gobject/valadbusmodule.vala: Support serialization and deserialization of GValue values in static D-Bus clients
2008-11-21 Jürg Billeter <j@bitron.ch> * gobject/valadbusmodule.vala: Support serialization and deserialization of GHashTable objects in static D-Bus clients
Created attachment 123192 [details] [review] Updated patch Initial draft of static client support is now in trunk. I've attached the updated patch for the server part.
Created attachment 124537 [details] [review] Updated patch Added signal support
Created attachment 124548 [details] [review] Updated patch Added property support.
Created attachment 124553 [details] [review] Updated patch Added introspection support. Error handling is still missing and then we need to start testing and fixing bugs.
Created attachment 124566 [details] [review] Updated patch Added basic error handling and support for a special first method parameter: DBus.BusName? sender Now we need a lot of testing.
Created attachment 124582 [details] [review] Updated patch Fixed typo in previous patch.
Created attachment 124590 [details] [review] Updated patch Fixed bug in code generation for signal parameters.
Created attachment 124601 [details] [review] Updated patch This update avoids creating marshalling code more than once for the same method, property, or signal.
Created attachment 124614 [details] [review] Fix signals with array parameters in DBus classes The attached patch fixes the support for arrays in signals with the new DBus server implementation.
Created attachment 124629 [details] [review] Updated patch Thanks. This update includes the signal array fix and fixes an issue with inherited properties.
Created attachment 124647 [details] [review] Updated patch Yet another update. This fixes registering objects where the static type differs from the dynamic type and it also fixes introspection of inherited members.
Created attachment 124650 [details] [review] Updated patch This update includes child nodes in introspection information.
Created attachment 124659 [details] [review] Updated patch Fixed missing include and implement GetAll D-Bus method.
2008-12-14 Jürg Billeter <j@bitron.ch> * gobject/valaccodebasemodule.vala: * gobject/valadbusservermodule.vala: * gobject/valagsignalmodule.vala: * vapi/dbus-glib-1.vapi: Rewrite D-Bus server support to directly use libdbus without dbus-glib marshalling, fixes bug 560034 and bug 549980 Support BusName sender parameter in exported D-Bus methods Fixed in r2147.