[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