activityfw/activitydatabase/s60/src/hsserializer.cpp
changeset 103 b99b84bcd2d1
parent 80 397d00875918
equal deleted inserted replaced
83:156f692b1687 103:b99b84bcd2d1
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 * Description:
    14 * Description:
    15 *
    15 *
    16 */
    16 */
       
    17 #include <s32mem.h>
    17 #include "hsserializer.h"
    18 #include "hsserializer.h"
    18 #include <s32mem.h>
       
    19 // -----------------------------------------------------------------------------
    19 // -----------------------------------------------------------------------------
    20 //
    20 //
    21 // -----------------------------------------------------------------------------
    21 // -----------------------------------------------------------------------------
    22 //
    22 //
    23 RBuf8 &operator <<(RBuf8 &dst, const QVariantHash &src)
    23 RBuf8 &operator <<(RBuf8 &dst, const QVariantHash &src)
    46 
    46 
    47     QDataStream stream(&buffer, QIODevice::ReadOnly);
    47     QDataStream stream(&buffer, QIODevice::ReadOnly);
    48     QT_TRYCATCH_LEAVING(stream >> dst);
    48     QT_TRYCATCH_LEAVING(stream >> dst);
    49     return dst;
    49     return dst;
    50 }
    50 }
    51 
       
    52 // -----------------------------------------------------------------------------
       
    53 //
       
    54 // -----------------------------------------------------------------------------
       
    55 //
       
    56 QList<QVariantHash>& operator <<(QList<QVariantHash>& dst, const TDesC8 &src)
       
    57 {
       
    58     dst.clear();
       
    59     
       
    60     QVariantHash item;
       
    61     TRAP_IGNORE(
       
    62     RDesReadStream srcStream(src);
       
    63     int numOfItems(srcStream.ReadInt32L());
       
    64     int bufferSize;
       
    65     
       
    66     RBuf8 tmpBuff;
       
    67     CleanupClosePushL(tmpBuff);
       
    68     for (int iter(0); iter < numOfItems; ++iter) {
       
    69         bufferSize = srcStream.ReadInt32L();
       
    70         if (tmpBuff.MaxLength() < bufferSize) {
       
    71             tmpBuff.ReAllocL(bufferSize);
       
    72         }
       
    73         item.clear();
       
    74         if (0 < bufferSize) {
       
    75             srcStream.ReadL(tmpBuff, bufferSize);
       
    76             item << tmpBuff;
       
    77         }
       
    78         dst.append(item);
       
    79     }
       
    80     CleanupStack::PopAndDestroy(&tmpBuff));
       
    81     return dst;
       
    82 }