MsgPackStream integers pack and unpack

User types packers now called only once, and return QByteArray
This commit is contained in:
Roman
2015-05-16 21:45:33 +03:00
parent 32b04745ee
commit b7fbf6413e
12 changed files with 530 additions and 107 deletions

View File

@@ -4,6 +4,7 @@
#include "private/pack_p.h"
#include "private/qt_types_p.h"
#include "private/sysdep.h"
#include <QVector>
QVariant MsgPack::unpack(const QByteArray &data)
{
@@ -16,13 +17,14 @@ QVariant MsgPack::unpack(const QByteArray &data)
QByteArray MsgPack::pack(const QVariant &variant)
{
quint8 *p = 0;
quint8 *end = MsgPackPrivate::pack(variant, p, false);
QVector<QByteArray> user_data;
quint8 *end = MsgPackPrivate::pack(variant, p, false, user_data);
quint32 size = end - p;
//qDebug() << "size probe:" << size;
QByteArray arr;
arr.resize(size);
end = MsgPackPrivate::pack(variant, (quint8 *)arr.data(), true);
end = MsgPackPrivate::pack(variant, (quint8 *)arr.data(), true, user_data);
return arr;
}