DBUS C++ bindings?

Aristid Breitkreuz aribrei at arcor.de
Sat Feb 25 10:30:33 PST 2006


Am Samstag, den 25.02.2006, 18:56 +0100 schrieb Thiago Macieira:
> Maybe some inspiration will help: in the Qt bindings (both of them), we're 
> using QVariant to hold the values. By overloading the constructor, it can 
> hold almost any of the D-Bus types (short and char are not supported, 
> though), including lists of QVariants and maps of QVariants.
> 
> The tricky part is structs, since you can't add a type number for each 
> possible struct (too many combinations). Here's where virtual methods 
> should be useful.
> 

Actually, if you look at boost::any (which can easily be cloned), C++ is
easily capable of storing data of ANY type, be it char or short or
structs or ints or whatever. The only drawbacks I see are speed (but,
probably not enough to be serious) and type-safety, which is actually
what we not want. Oh and it requires RTTI.

By the way: I already wrote an extended version of boost::any which I
could give away, if MPL/GPL/LGPL-triple is not what you want, we could
talk about other licenses. My version eliminates some drawbacks of
boost::any - but it's not yet finished. And it might be too complex. In
that case, writing a trivial clone of boost::any is a matter of 30
minutes.

If you don't like RTTI, it's possible to write an unsafe version which
does not use RTTI. I would not recommend this.



More information about the dbus mailing list