Re: EggDBus
- From: David Zeuthen <david fubar dk>
- To: Bastien Nocera <hadess hadess net>
- Cc: gtk-devel-list gnome org
- Subject: Re: EggDBus
- Date: Sat, 27 Dec 2008 12:59:08 -0500
Hey Bastien,
On Fri, 2008-12-26 at 22:13 +0000, Bastien Nocera wrote:
> My personal wishlist for D-Bus is mostly on the client side:
> - dbus_g_object_register_marshaller() is hate. The marshalling code
> should be using libffi so it just works (same holds true for native
> GObject as well).
> - dbus_g_proxy_add_signal() is also a pain, for the same reason
You don't need these things when EggDBus; everything is automatically
set up for you (I agree it's unreasonable that you have to do this in
dbus-glib).
(And no, we don't currently use libffi - we could but even if we did, it
would be an implementation detail anyway. E.g. users shouldn't have to
worry about such low-level things as marshallers or whatnot.)
> - there's no native support for properties. I should be able to use
> g_object_get() directly on the proxy object.
EggDBus does this. There's also an EggDBusChanged() signal on the
org.fd.DBus.Properties interface (I want to propose a Changed() signal
in the D-Bus spec so other bindings get this too) so if both ends are
using EggDBus, property changes works in a very natural way. E.g. you
can connect to notify::prop-name and things like ExoBinding will Just
Work(tm).
Also, keep in mind that we have two kinds of proxies; object proxies and
interface proxies (this is needed for disambiguation; e.g. interface A
and B may have properties or signals with the same names). In reality
this is not a big deal; you always just hold on to the object proxy and
get the interface proxies through the QUERY_INTERFACE() macros whenever
you need to use them.
Anyway, as I said earlier, until we have a real tutorial the best way to
learn how EggDBus works is to look at the test cases; for example for
signals and properties it looks like this
http://cgit.freedesktop.org/~david/eggdbus/tree/src/tests/testclient.c?id=0.1#n1968
http://cgit.freedesktop.org/~david/eggdbus/tree/src/tests/testclient.c?id=0.1#n2322
David
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]