equal
deleted
inserted
replaced
13 * |
13 * |
14 * Description: |
14 * Description: |
15 * |
15 * |
16 */ |
16 */ |
17 #include "hsserializer.h" |
17 #include "hsserializer.h" |
18 |
18 #include <s32mem.h> |
19 // ----------------------------------------------------------------------------- |
19 // ----------------------------------------------------------------------------- |
20 // |
20 // |
21 // ----------------------------------------------------------------------------- |
21 // ----------------------------------------------------------------------------- |
22 // |
22 // |
23 RBuf8 &operator <<(RBuf8 &dst, const QPixmap &src) |
23 RBuf8 &operator <<(RBuf8 &dst, const QPixmap &src) |
104 // |
104 // |
105 // ----------------------------------------------------------------------------- |
105 // ----------------------------------------------------------------------------- |
106 // |
106 // |
107 QList<QVariantHash>& operator <<(QList<QVariantHash>& dst, const TDesC8 &src) |
107 QList<QVariantHash>& operator <<(QList<QVariantHash>& dst, const TDesC8 &src) |
108 { |
108 { |
109 QByteArray buffer(QByteArray::fromRawData(reinterpret_cast<const char *>(src.Ptr()), |
109 dst.clear(); |
110 src.Length())); |
110 |
111 |
111 QVariantHash item; |
112 QDataStream stream(&buffer, QIODevice::ReadOnly); |
112 TRAP_IGNORE( |
113 QT_TRYCATCH_LEAVING(stream >> dst); |
113 RDesReadStream srcStream(src); |
|
114 int numOfItems(srcStream.ReadInt32L()); |
|
115 int bufferSize; |
|
116 |
|
117 RBuf8 tmpBuff; |
|
118 CleanupClosePushL(tmpBuff); |
|
119 for (int iter(0); iter < numOfItems; ++iter) { |
|
120 bufferSize = srcStream.ReadInt32L(); |
|
121 if (tmpBuff.MaxLength() < bufferSize) { |
|
122 tmpBuff.ReAllocL(bufferSize); |
|
123 } |
|
124 item.clear(); |
|
125 if (0 < bufferSize) { |
|
126 srcStream.ReadL(tmpBuff, bufferSize); |
|
127 item << tmpBuff; |
|
128 } |
|
129 dst.append(item); |
|
130 } |
|
131 CleanupStack::PopAndDestroy(&tmpBuff)); |
114 return dst; |
132 return dst; |
115 } |
133 } |