ruben.rodrigues
2nd August 2010, 06:52
hi all!
I need to store a QVector to send it via tcp/ip and then store it in a mysql database as a BLOB. I am getting an error and don't know how to handle it.
this 2 function store and restore QVectors from a QByteArray.
QByteArray EViewer::netArraySerialisation()
{
QByteArray dataBlock;
QDataStream dataStream(&dataBlock, QIODevice::WriteOnly);
dataStream.setVersion(QDataStream::Qt_4_5);
dataStream << _NetArray;
return dataBlock;
}
void EViewer::netArrayDeserialisation(QByteArray qb)
{
// create data block and related stream
QByteArray dataBlock = qb;
QDataStream dataStream(&dataBlock, QIODevice::ReadOnly);
dataStream.setVersion(QDataStream::Qt_4_5);
dataStream >> _NetArray;
}
Error:
src/srcFrw/DataObjects/EViewer.cpp:167: instantiated from here
/usr/include/qt4/QtCore/qdatastream.h:292: error: no match for ‘operator>>’ in ‘s >> t’
/usr/include/qt4/QtCore/qdatastream.h:132: note: candidates are: QDataStream& QDataStream::operator>>(qint8&)
/usr/include/qt4/QtCore/qdatastream.h:206: note: QDataStream& QDataStream::operator>>(quint8&)
/usr/include/qt4/QtCore/qdatastream.h:134: note: QDataStream& QDataStream::operator>>(qint16&)
/usr/include/qt4/QtCore/qdatastream.h:209: note: QDataStream& QDataStream::operator>>(quint16&)
/usr/include/qt4/QtCore/qdatastream.h:136: note: QDataStream& QDataStream::operator>>(qint32&)
/usr/include/qt4/QtCore/qdatastream.h:212: note: QDataStream& QDataStream::operator>>(quint32&)
/usr/include/qt4/QtCore/qdatastream.h:138: note: QDataStream& QDataStream::operator>>(qint64&)
/usr/include/qt4/QtCore/qdatastream.h:215: note: QDataStream& QDataStream::operator>>(quint64&)
/usr/include/qt4/QtCore/qdatastream.h:141: note: QDataStream& QDataStream::operator>>(bool&)
/usr/include/qt4/QtCore/qdatastream.h:142: note: QDataStream& QDataStream::operator>>(float&)
/usr/include/qt4/QtCore/qdatastream.h:143: note: QDataStream& QDataStream::operator>>(double&)
/usr/include/qt4/QtCore/qdatastream.h:144: note: QDataStream& QDataStream::operator>>(char*&)
/usr/include/qt4/QtCore/qchar.h:390: note: QDataStream& operator>>(QDataStream&, QChar&)
/usr/include/qt4/QtCore/qbytearray.h:570: note: QDataStream& operator>>(QDataStream&, QByteArray&)
/usr/include/qt4/QtCore/qstring.h:1063: note: QDataStream& operator>>(QDataStream&, QString&)
/usr/include/qt4/QtCore/qregexp.h:146: note: QDataStream& operator>>(QDataStream&, QRegExp&)
/usr/include/qt4/QtCore/qstringlist.h:245: note: QDataStream& operator>>(QDataStream&, QStringList&)
/usr/include/qt4/QtCore/qlocale.h:671: note: QDataStream& operator>>(QDataStream&, QLocale&)
/usr/include/qt4/QtCore/qtextstream.h:286: note: QTextStream& operator>>(QTextStream&, QTextStream& (*)(QTextStream&))
/usr/include/qt4/QtCore/qvariant.h:498: note: QDataStream& operator>>(QDataStream&, QVariant&)
/usr/include/qt4/QtCore/qvariant.h:500: note: QDataStream& operator>>(QDataStream&, QVariant::Type&)
/usr/include/qt4/QtCore/qurl.h:270: note: QDataStream& operator>>(QDataStream&, QUrl&)
/usr/include/qt4/QtCore/quuid.h:183: note: QDataStream& operator>>(QDataStream&, QUuid&)
/usr/include/qt4/QtCore/qbitarray.h:164: note: QDataStream& operator>>(QDataStream&, QBitArray&)
/usr/include/qt4/QtCore/qdatetime.h:316: note: QDataStream& operator>>(QDataStream&, QDate&)
/usr/include/qt4/QtCore/qdatetime.h:318: note: QDataStream& operator>>(QDataStream&, QTime&)
/usr/include/qt4/QtCore/qdatetime.h:320: note: QDataStream& operator>>(QDataStream&, QDateTime&)
/usr/include/qt4/QtCore/qpoint.h:104: note: QDataStream& operator>>(QDataStream&, QPoint&)
/usr/include/qt4/QtCore/qpoint.h:236: note: QDataStream& operator>>(QDataStream&, QPointF&)
/usr/include/qt4/QtCore/qline.h:206: note: QDataStream& operator>>(QDataStream&, QLine&)
/usr/include/qt4/QtCore/qline.h:417: note: QDataStream& operator>>(QDataStream&, QLineF&)
/usr/include/qt4/QtCore/qsize.h:102: note: QDataStream& operator>>(QDataStream&, QSize&)
/usr/include/qt4/QtCore/qsize.h:253: note: QDataStream& operator>>(QDataStream&, QSizeF&)
/usr/include/qt4/QtCore/qrect.h:200: note: QDataStream& operator>>(QDataStream&, QRect&)
/usr/include/qt4/QtCore/qrect.h:622: note: QDataStream& operator>>(QDataStream&, QRectF&)
make[1]: *** [debug/EViewer.o] Error 1
make: *** [debug] Error 2
Is there a standard way to convert QVectors?
I need to store a QVector to send it via tcp/ip and then store it in a mysql database as a BLOB. I am getting an error and don't know how to handle it.
this 2 function store and restore QVectors from a QByteArray.
QByteArray EViewer::netArraySerialisation()
{
QByteArray dataBlock;
QDataStream dataStream(&dataBlock, QIODevice::WriteOnly);
dataStream.setVersion(QDataStream::Qt_4_5);
dataStream << _NetArray;
return dataBlock;
}
void EViewer::netArrayDeserialisation(QByteArray qb)
{
// create data block and related stream
QByteArray dataBlock = qb;
QDataStream dataStream(&dataBlock, QIODevice::ReadOnly);
dataStream.setVersion(QDataStream::Qt_4_5);
dataStream >> _NetArray;
}
Error:
src/srcFrw/DataObjects/EViewer.cpp:167: instantiated from here
/usr/include/qt4/QtCore/qdatastream.h:292: error: no match for ‘operator>>’ in ‘s >> t’
/usr/include/qt4/QtCore/qdatastream.h:132: note: candidates are: QDataStream& QDataStream::operator>>(qint8&)
/usr/include/qt4/QtCore/qdatastream.h:206: note: QDataStream& QDataStream::operator>>(quint8&)
/usr/include/qt4/QtCore/qdatastream.h:134: note: QDataStream& QDataStream::operator>>(qint16&)
/usr/include/qt4/QtCore/qdatastream.h:209: note: QDataStream& QDataStream::operator>>(quint16&)
/usr/include/qt4/QtCore/qdatastream.h:136: note: QDataStream& QDataStream::operator>>(qint32&)
/usr/include/qt4/QtCore/qdatastream.h:212: note: QDataStream& QDataStream::operator>>(quint32&)
/usr/include/qt4/QtCore/qdatastream.h:138: note: QDataStream& QDataStream::operator>>(qint64&)
/usr/include/qt4/QtCore/qdatastream.h:215: note: QDataStream& QDataStream::operator>>(quint64&)
/usr/include/qt4/QtCore/qdatastream.h:141: note: QDataStream& QDataStream::operator>>(bool&)
/usr/include/qt4/QtCore/qdatastream.h:142: note: QDataStream& QDataStream::operator>>(float&)
/usr/include/qt4/QtCore/qdatastream.h:143: note: QDataStream& QDataStream::operator>>(double&)
/usr/include/qt4/QtCore/qdatastream.h:144: note: QDataStream& QDataStream::operator>>(char*&)
/usr/include/qt4/QtCore/qchar.h:390: note: QDataStream& operator>>(QDataStream&, QChar&)
/usr/include/qt4/QtCore/qbytearray.h:570: note: QDataStream& operator>>(QDataStream&, QByteArray&)
/usr/include/qt4/QtCore/qstring.h:1063: note: QDataStream& operator>>(QDataStream&, QString&)
/usr/include/qt4/QtCore/qregexp.h:146: note: QDataStream& operator>>(QDataStream&, QRegExp&)
/usr/include/qt4/QtCore/qstringlist.h:245: note: QDataStream& operator>>(QDataStream&, QStringList&)
/usr/include/qt4/QtCore/qlocale.h:671: note: QDataStream& operator>>(QDataStream&, QLocale&)
/usr/include/qt4/QtCore/qtextstream.h:286: note: QTextStream& operator>>(QTextStream&, QTextStream& (*)(QTextStream&))
/usr/include/qt4/QtCore/qvariant.h:498: note: QDataStream& operator>>(QDataStream&, QVariant&)
/usr/include/qt4/QtCore/qvariant.h:500: note: QDataStream& operator>>(QDataStream&, QVariant::Type&)
/usr/include/qt4/QtCore/qurl.h:270: note: QDataStream& operator>>(QDataStream&, QUrl&)
/usr/include/qt4/QtCore/quuid.h:183: note: QDataStream& operator>>(QDataStream&, QUuid&)
/usr/include/qt4/QtCore/qbitarray.h:164: note: QDataStream& operator>>(QDataStream&, QBitArray&)
/usr/include/qt4/QtCore/qdatetime.h:316: note: QDataStream& operator>>(QDataStream&, QDate&)
/usr/include/qt4/QtCore/qdatetime.h:318: note: QDataStream& operator>>(QDataStream&, QTime&)
/usr/include/qt4/QtCore/qdatetime.h:320: note: QDataStream& operator>>(QDataStream&, QDateTime&)
/usr/include/qt4/QtCore/qpoint.h:104: note: QDataStream& operator>>(QDataStream&, QPoint&)
/usr/include/qt4/QtCore/qpoint.h:236: note: QDataStream& operator>>(QDataStream&, QPointF&)
/usr/include/qt4/QtCore/qline.h:206: note: QDataStream& operator>>(QDataStream&, QLine&)
/usr/include/qt4/QtCore/qline.h:417: note: QDataStream& operator>>(QDataStream&, QLineF&)
/usr/include/qt4/QtCore/qsize.h:102: note: QDataStream& operator>>(QDataStream&, QSize&)
/usr/include/qt4/QtCore/qsize.h:253: note: QDataStream& operator>>(QDataStream&, QSizeF&)
/usr/include/qt4/QtCore/qrect.h:200: note: QDataStream& operator>>(QDataStream&, QRect&)
/usr/include/qt4/QtCore/qrect.h:622: note: QDataStream& operator>>(QDataStream&, QRectF&)
make[1]: *** [debug/EViewer.o] Error 1
make: *** [debug] Error 2
Is there a standard way to convert QVectors?