This commit is contained in:
Hajime Yoshimori
2016-01-09 21:16:48 +09:00
10 changed files with 35 additions and 10 deletions

View File

@ -4,7 +4,6 @@ compiler:
- gcc
env:
- QT4_BUILD=ON
- QT4_BUILD=OFF
before_install:

View File

@ -1,3 +1,8 @@
set(Qt5Core_DIR "/opt/Qt5.6.0/5.6/gcc_64/lib/cmake/Qt5Core")
set(Qt5Test_DIR "/opt/Qt5.6.0/5.6/gcc_64/lib/cmake/Qt5Test")
set(Qt5_DIR "/opt/Qt5.6.0/5.6/gcc_64/lib/cmake/Qt5Core")
set(QT_QMAKE_EXECUTABLE "/opt/Qt5.6.0/5.6/gcc_64/bin/qmake")
project(qmsgpack)
cmake_minimum_required(VERSION 2.8.8)

View File

@ -5,7 +5,7 @@ MessagePack for Qt
Documentation
-------------
Complete documentation is available here: [mp.marsw.ru](http://msgpack.marsworks.ru/) (still working on it)
Complete documentation is available here: [msgpack.marsworks.ru](http://msgpack.marsworks.ru/) (still working on it)
Installation
------------

View File

@ -62,6 +62,18 @@ Add options before ``..`` as follow:
cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTS=True ..
Custom Qt installation
""""""""""""""""""""""
If you installed Qt with online installer, cmake will most likely not find it, in this case try adding following lines to CMakeLists.txt:
.. code-block:: cmake
set(Qt5Core_DIR "/opt/Qt5.6.0/5.6/gcc_64/lib/cmake/Qt5Core")
set(Qt5Test_DIR "/opt/Qt5.6.0/5.6/gcc_64/lib/cmake/Qt5Test")
set(Qt5_DIR "/opt/Qt5.6.0/5.6/gcc_64/lib/cmake/Qt5Core")
set(QT_QMAKE_EXECUTABLE "/opt/Qt5.6.0/5.6/gcc_64/bin/qmake")
qmake
^^^^^

View File

@ -59,15 +59,15 @@ endif
## -- Rsync Deploy config -- ##
# Be sure your public key is listed in your server's ~/.ssh/authorized_keys file
ifndef SSH_USER
SSH_USER = roman@vds.marsworks.ru
SSH_USER = nginx@mars
endif
ifndef SSH_PORT
SSH_PORT = 22
SSH_PORT = 7722
endif
ifndef DOCUMENT_ROOT
DOCUMENT_ROOT = /var/www/roman/data/www/msgpack.marsworks.ru/
DOCUMENT_ROOT = /var/www/msgpack.marsworks.ru/
endif
#If you choose to delete on sync, rsync will create a 1:1 match

View File

@ -4,10 +4,6 @@
#include <QVariant>
#include <QtGlobal>
#ifdef Q_OS_WINRT
#include <stdint.h>
#endif
#define MSGPACK_MAJOR 0
#define MSGPACK_MINOR 1
#define MSGPACK_VERSION 0

View File

@ -18,7 +18,9 @@ QReadWriteLock MsgPackPrivate::packers_lock;
quint8 *MsgPackPrivate::pack(const QVariant &v, quint8 *p, bool wr, QVector<QByteArray> &user_data)
{
QMetaType::Type t = (QMetaType::Type)v.type();
if (t == QMetaType::Int)
if (v.isNull() && !v.isValid())
p = pack_nil(p, wr);
else if (t == QMetaType::Int)
p = pack_int(v.toInt(), p, wr);
else if (t == QMetaType::UInt)
p = pack_uint(v.toUInt(), p, wr);
@ -59,6 +61,12 @@ quint8 *MsgPackPrivate::pack(const QVariant &v, quint8 *p, bool wr, QVector<QByt
return p;
}
quint8 *MsgPackPrivate::pack_nil(quint8 *p, bool wr)
{
if (wr) *p = MsgPack::FirstByte::NIL;
return p + 1;
}
quint8 *MsgPackPrivate::pack_int(qint32 i, quint8 *p, bool wr)
{
if (i >= -32 && i <= 127) {

View File

@ -27,6 +27,8 @@ extern bool compatibilityMode;
quint8 * pack(const QVariant &v, quint8 *p, bool wr, QVector<QByteArray> &user_data);
quint8 * pack_nil(quint8 *p, bool wr);
quint8 * pack_int(qint32 i, quint8 *p, bool wr);
quint8 * pack_uint(quint32 i, quint8 *p, bool wr);
quint8 * pack_longlong(qint64 i, quint8 *p, bool wr);

View File

@ -87,6 +87,7 @@ quint8 * MsgPackPrivate::unpack_nil(QVariant &v, quint8 *p)
{
Q_UNUSED(p)
Q_UNUSED(v)
v = QVariant();
return p + 1;
}
@ -94,6 +95,7 @@ quint8 * MsgPackPrivate::unpack_never_used(QVariant &v, quint8 *p)
{
Q_UNUSED(p)
Q_UNUSED(v)
v = QVariant();
return p + 1;
}

View File

@ -68,6 +68,7 @@ void QtTypesTest::test_qtime()
QByteArray packed = MsgPack::pack(t);
QTime t2 = MsgPack::unpack(packed).toTime();
QVERIFY(t == t2);
qDebug() << packed.toHex();
QVERIFY(packed.size() == 3);
t = QTime(12, 01, 01, 0);