Files
qmsgpack/src/msgpack.cpp
T
Elvis Stansvik 8d03b48b10 Some header inclusion clean-ups.
o Include what is directly used, nothing more.
 o Don't rely on transitive inclusion.
 o Order inclusions as: 1) own, 2) Qt, 3) others.
 o Order inclusions alphabetically.
 o Use forward declarations where possible.
 o Blank line between include guard and #include directives.

Tested on Qt 4.8.6 and Qt 5.4.1.

This incidentally fixes "invalid use of incomplete type ‘class
QStringList’" which I got in pack_p.cpp with Qt 4.8.6.
2015-04-11 15:48:55 +02:00

42 lines
1.0 KiB
C++

#include "msgpack.h"
#include "msgpack_common.h"
#include "private/unpack_p.h"
#include "private/pack_p.h"
QVariant MsgPack::unpack(const QByteArray &data)
{
quint8 *p = (quint8 *)data.data();
quint8 *end = p + data.size() - 1;
return MsgPackPrivate::unpack(p, end);
}
QByteArray MsgPack::pack(const QVariant &variant)
{
quint8 *p = 0;
quint8 *end = MsgPackPrivate::pack(variant, p, false);
quint32 size = end - p;
//qDebug() << "size probe:" << size;
QByteArray arr;
arr.resize(size);
end = MsgPackPrivate::pack(variant, (quint8 *)arr.data(), true);
return arr;
}
bool MsgPack::registerPacker(QMetaType::Type qType, qint8 msgpackType, MsgPack::pack_user_f packer)
{
return MsgPackPrivate::register_packer(qType, msgpackType, packer);
}
bool MsgPack::registerUnpacker(qint8 msgpackType, MsgPack::unpack_user_f unpacker)
{
return MsgPackPrivate::register_unpacker(msgpackType, unpacker);
}
void MsgPack::setCompatibilityModeEnabled(bool enabled)
{
MsgPackPrivate::compatibilityMode = enabled;
}