[Qt-interest] Serialize QList<qint64>

Murphy, Sean M. sean.murphy at gd-ais.com
Wed Jul 27 21:18:04 CEST 2011


You shouldn't have to do anything if you're willing to accept Qt's built in serialization of a QList<T>:
  http://doc.trolltech.com/4.7/qlist.html#operator-lt-lt-77

Sean

-----Original Message-----
From: qt-interest-bounces+sean.murphy=gd-ais.com at qt.nokia.com [mailto:qt-interest-bounces+sean.murphy=gd-ais.com at qt.nokia.com] On Behalf Of Bruno Tezine
Sent: Wednesday, July 27, 2011 3:05 PM
To: qt-interest at qt.nokia.com
Subject: [Qt-interest] Serialize QList<qint64>

Hi,
How can I serialize a QList<qint64>?
I already can serialize any class of mine, but I didn't figure it out on 
how to serialize a simple QList<qint64>.
Whenever I try to serialize it, I get the assert saying "Invalid type to 
save".  Any ideas? Thanks/Bruno.

I registered the data type:
         qRegisterMetaType<QList<qint64> >();
         qRegisterMetaTypeStreamOperators<QList<qint64> >("QList<qint64>");

Registered the stream operators:
     QDataStream &operator<<(QDataStream &stream, const QList<qint64> &d);
     QDataStream &operator>>(QDataStream &stream, QList<qint64> &d);

...and here is the implementation(it's never called):
QDataStream &operator<<(QDataStream &stream, const QList<qint64> &d)
{
     stream<<(quint32)0xA0B0C0D0; //Magic Number
     stream<<d.count();
     foreach(qlonglong number, d)
         stream<<number;
     return stream;
}

QDataStream &operator>>(QDataStream &stream, QList<qint64> &d)
{
     quint32 magic;
     stream >> magic;
     if (magic != 0xA0B0C0D0)
     {
         BLogger::log(LogTypeError,NULL,"deserializing","Invalid magic 
number");
         return stream;
     }
     int listCount;
     stream>>listCount;
     QList<qlonglong> list;
     for(int i=0;i<listCount;i++)
     {
         qlonglong temp;
         stream>>temp;
         list.append(temp);
     }
     d=list;
     return stream;
}

_______________________________________________
Qt-interest mailing list
Qt-interest at qt.nokia.com
http://lists.qt.nokia.com/mailman/listinfo/qt-interest



More information about the Qt-interest-old mailing list