On 04/26/2012 01:19 PM, Thiago Macieira wrote: >> 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. > > Not exactly... there are two reasons why this can't be done. [...]
Thanks for the explanation, it makes sense. >> Should we have a QDBusArgument::signature() method? > > It's there: QDBusArgument::currentSignature() > > For whatever reason that I can't remember right now, the method is marked > \internal in the documentation. OK. For the time being I decided to work around the issue in a way that I don't need this demarshalling at all, but if I'll ever need it I'll try to remember about currentSignature(), thanks. > Depending on the context, you don't need to know the signature and > currentType() might be enough. You can do a beginMap() and you'll have a type > of MapEntryType. Then you beginMapEntry() and you should have a BasicType -- > which is always demarshalled. After you demarshall that, you'll have any type > again. Yep. The advantage of knowing the signature in advance is that it makes the code a bit cleaner (you don't need to read the first map entry to infer the types), and especially that it works even if the map is empty. Ciao, Alberto -- http://blog.mardy.it <- geek in un lingua international! _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
