8d03b48b102383aaba115a3f3eda090f0a195756
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.
qmsgpack
MessagePack for Qt
Installation
Clone repository:
git clone https://github.com/romixlab/qmsgpack.git
Run cmake:
cd qmsgpack
mkdir build
cd build
cmake ..
Compile:
make
Run tests and install
make tests install
Sample usage
Packing
QVariantList list;
list << 1 << 2 << 3;
QByteArray array = MsgPack::pack(list);
Unpacking:
QVariantList unpacked = MsgPack::unpack(array).toList();
By default these Qt types are supported: Int, UInt, LongLong, ULongLong, Double, QByteArray, Bool, QString, QStringList, QVariantList, QVariantMap.
Also you can provide packer and unpacker functions for any other type (even for user type defined via Q_DECLARE_METATYPE) or MsgPack type.
Languages
C++
85.6%
C
7%
CMake
6.1%
QMake
1.3%