Matthew Stickney 4ff4ba8448 Handle partial reads correctly.
QIODevice::read() can read any number of bytes less than the amount
requested if there wasn't that much data available. If the result is >= 0,
we haven't actually hit EOF yet and should continue trying to read data.
Since QIODevice::read() doesn't block, we use QIODevice::waitForReadyRead()
to avoid spinning waiting for input to arrive.

If we encounter EOF or another error during a read, we set the ReadPastEnd
status and walk away as normal.
2017-02-08 18:46:31 -05:00
2017-02-08 18:46:31 -05:00
2015-05-29 20:15:26 +03:00
2015-12-03 23:31:09 +03:00
2015-12-31 10:36:25 +03:00
2015-04-11 15:58:42 +03:00
2015-07-12 22:53:25 +03:00
2016-05-03 10:31:39 +03:00

qmsgpack

MessagePack for Qt

Build Status Doc Status

Documentation

Complete documentation is available here: qmsgpack.readthedocs.io

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.

Qt types and User types

There is packers and unpackers for QColor, QTime, QDate, QDateTime, QPoint, QSize, QRect. Also you can create your own packer/unpacker methods for Qt or your own types. See docs for details.

Thread-safety

At this time it is not safe to call MsgPack::registerPacker, MsgPack::registerUnpacker and MsgPack::setCompatibilityModeEnabled from different threads. pack and unpack methods do not use any global data, so should be safe to use from multiple threads.

Description
MessagePack serializer implementation for Qt / msgpack.org[Qt]
Readme MIT 299 KiB
Languages
C++ 86.5%
CMake 6%
C 5.6%
QMake 1.3%
IDL 0.6%