exporting dbus-marshal-recursive.h

Havoc Pennington hp at redhat.com
Thu Feb 17 20:28:43 PST 2005


On Thu, 2005-02-17 at 21:12 -0500, Colin Walters wrote: 
> 
> Havoc has suggested putting a "human readable" form of the signature
> into the introspection format; I think that's fine, but after we convert
> it from human-readable into a normal signature, we simply don't have
> functionality exported to parse it inside the glib bindings to generate
> the requisite C code.  Similarly for invoking methods from received
> messages and sending return values back.
> 
> Thoughts?  Am I on crack here?
> 

You aren't on crack (I've thought about doing this a fair bit; there are
other places we need it). However, it has a high cost at the moment.
marshal-recursive is a messy API, and currently it's too slow; both of
those things will probably lead to it getting changed. It's also sort of
big and bloated.

My best suggestion is to export a much more limited "types only"
signature parsing API. It could be implemented in terms of marshal-
recursive for now though I think a fast simple implementation might be
better and not hard.

void dbus_signature_iter_init (DBusSignatureIter *iter);
get_current_type()
next()
recurse()
unrecurse()

This could go in a header with a few of the other typecode-related
functions.

One thing about marshal-recursive we definitely *don't* want to export
is the value reading/writing; I don't want people using libdbus as some
sort of serialization library.

Havoc




More information about the dbus mailing list