Re: EggDBus



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]