[Development] D-Bus and (de-)marshalling of complex types (QDBusArgument)

Alberto Mardegan mardy at users.sourceforge.net
Thu Apr 26 10:49:02 CEST 2012


Hi all!
 The current QtDBus implementation automatically marshals only the
basic D-Bus types, and puts all the complex types into a QDBusArgument.

I've found a reason for this behaviour here:
http://permalink.gmane.org/gmane.comp.freedesktop.dbus/5920

However, unless I'm missing something, this only explains why we cannot
marshal for aggregate types (structures); we should still be able to
marshal array and dictionary types.
I'm not proposing to change this behaviour now -- but maybe there could
be a method on the QDBusContext class to enable automatic demarshalling
whenever possible if desired?

Regardless of all this, I'm now facing a problem with serializing a
QDBusArgument into a QDataStream: QDBusArgument::currentType() can tell
me that the argument is a map, but doesn't tell me the signature of the
keys and values. Therefore, there seems to be no way I can parse a map
out of a QDBusArgument, without knowing its signature. :-(

Should we have a QDBusArgument::signature() method?

Ciao,
  Alberto

-- 
http://blog.mardy.it <- geek in un lingua international!



More information about the Development mailing list