mirror of
https://github.com/romixlab/qmsgpack.git
synced 2025-08-04 12:44:27 +02:00
unpacking is partially done
This commit is contained in:
2
main.cpp
2
main.cpp
@@ -11,7 +11,7 @@ int main(int argc, char *argv[])
|
||||
QCoreApplication a(argc, argv);
|
||||
|
||||
qDebug() << "MsgPack";
|
||||
qDebug() << MsgPack::deserialize(QByteArray::fromHex("fffeece1e0"));
|
||||
qDebug() << MsgPack::deserialize(QByteArray::fromHex("92cd0100cd0200"));
|
||||
|
||||
return a.exec();
|
||||
}
|
||||
|
27
msgpack.cpp
27
msgpack.cpp
@@ -1,29 +1,14 @@
|
||||
#include "msgpack.h"
|
||||
#include <QDebug>
|
||||
#include "private/msgpack_p.h"
|
||||
|
||||
QVariantList MsgPack::deserialize(const QByteArray &data)
|
||||
QVariant MsgPack::deserialize(const QByteArray &data)
|
||||
{
|
||||
QVariantList d;
|
||||
int i = 0;
|
||||
|
||||
quint8 *p = (quint8 *)data.data();
|
||||
while (i < data.size()) {
|
||||
if (p[i] <= 127) { // positive fixint 0x00 - 0x7f
|
||||
quint32 val = (quint32)p[i];
|
||||
d.append(QVariant(val));
|
||||
i += 1;
|
||||
}
|
||||
if (p[i] >= 0xe0) { // negative fixint 0xe0 - 0xff
|
||||
quint8 val8 = (quint8)p[i];
|
||||
val8 &= ~((1 << 7) | (1 << 6) | (1 << 5));
|
||||
qint32 val = 31 - val8;
|
||||
val ^= 0xffffffff;
|
||||
d.append(QVariant((qint32)val));
|
||||
i += 1;
|
||||
}
|
||||
quint8 *end = p + data.size() - 1;
|
||||
qDebug() << "deserialize size:" << data.size();
|
||||
|
||||
MsgPackPrivate::unpack(p, end);
|
||||
|
||||
}
|
||||
|
||||
return d;
|
||||
return MsgPackPrivate::unpack(p, end);
|
||||
}
|
||||
|
@@ -6,7 +6,7 @@
|
||||
namespace MsgPack
|
||||
{
|
||||
|
||||
QVariantList deserialize(const QByteArray &data);
|
||||
QVariant deserialize(const QByteArray &data);
|
||||
}
|
||||
|
||||
#endif // MSGPACK_H
|
||||
|
@@ -1,6 +1,286 @@
|
||||
#include "msgpack_p.h"
|
||||
#include <QDebug>
|
||||
|
||||
static quint8 MsgPackPrivate::data_sizes[] = {
|
||||
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, // fixmap upto 15 elements
|
||||
|
||||
MsgPackPrivate::type_parser_f MsgPackPrivate::parsers[32] = {
|
||||
unpack_nil,
|
||||
unpack_never_used,
|
||||
unpack_false, unpack_true,
|
||||
unpack_bin8, unpack_bin16, unpack_bin32,
|
||||
unpack_ext8, unpack_ext16, unpack_ext32,
|
||||
unpack_float32, unpack_float64,
|
||||
unpack_uint8, unpack_uint16, unpack_uint32, unpack_uint64,
|
||||
unpack_int8, unpack_int16, unpack_int32, unpack_int64,
|
||||
unpack_fixext1, unpack_fixext2, unpack_fixext4, unpack_fixext8, unpack_fixext16,
|
||||
unpack_str8, unpack_str16, unpack_str32,
|
||||
unpack_array16, unpack_array32,
|
||||
unpack_map16, unpack_map32
|
||||
};
|
||||
|
||||
QVariant MsgPackPrivate::unpack(quint8 *p, quint8 *end)
|
||||
{
|
||||
QVariantList d;
|
||||
int typesz = 0;
|
||||
|
||||
while (p <= end) {
|
||||
typesz = 0;
|
||||
d.append(unpack_type(p, end, typesz));
|
||||
p += typesz;
|
||||
//qDebug() << "unpack typesz:" << typesz;
|
||||
}
|
||||
|
||||
if (p - end > 1)
|
||||
return QVariant();
|
||||
|
||||
if (d.length() == 1)
|
||||
return d[0];
|
||||
return d;
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_type(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
QVariant d;
|
||||
|
||||
if (*p <= 127) { // positive fixint 0x00 - 0x7f
|
||||
d = unpack_positive_fixint(p, end, sz);
|
||||
} else if (*p >= 0xe0) { // negative fixint 0xe0 - 0xff
|
||||
d = unpack_negative_fixint(p, end, sz);
|
||||
} else if (*p >= 0x80 && *p <= 0x8f) { // fixmap 1000xxxx 0x80 - 0x8f
|
||||
d = unpack_fixmap(p, end, sz);
|
||||
} else if (*p >= 0x90 && *p <= 0x9f) { // fixarray 1001xxxx 0x90 - 0x9f
|
||||
d = unpack_fixarray(p, end, sz);
|
||||
} else if (*p >= 0xa0 && *p <= 0xbf) { // fixstr 101xxxxx 0xa0 - 0xbf
|
||||
d = unpack_fixstr(p, end, sz);
|
||||
} else { // all other types
|
||||
d = (parsers[*p - 0xc0])(p, end, sz);
|
||||
}
|
||||
|
||||
//qDebug() << "unpack type res:" << d << sz;
|
||||
return d;
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_positive_fixint(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
Q_UNUSED(end)
|
||||
quint32 val = (quint32)*p;
|
||||
sz = 1;
|
||||
return QVariant(val);
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_negative_fixint(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
Q_UNUSED(end)
|
||||
quint8 val8 = (quint8)*p;
|
||||
val8 &= ~((1 << 7) | (1 << 6) | (1 << 5));
|
||||
qint32 val = 31 - val8;
|
||||
val ^= 0xffffffff;
|
||||
sz = 1;
|
||||
return QVariant(val);
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_fixmap(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
Q_UNUSED(end)
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_fixarray(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
int len = (*p++) & 0x0f; // 0b00001111
|
||||
sz++;
|
||||
|
||||
int elemsz = 0;
|
||||
QVariantList arr;
|
||||
|
||||
for (int i = 0; i < len; ++i) {
|
||||
elemsz = 0;
|
||||
arr.append(unpack_type(p, end, elemsz));
|
||||
p += elemsz;
|
||||
sz += elemsz;
|
||||
}
|
||||
//qDebug() << "unpack_fixarray len:" << len << arr << sz;
|
||||
return arr;
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_fixstr(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
Q_UNUSED(end)
|
||||
int len = (*p) & 0x1f; // 0b00011111
|
||||
QString str = QString::fromUtf8((char*)(p + 1), len);
|
||||
sz = len + 1;
|
||||
return QVariant(str);
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_nil(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
Q_UNUSED(end)
|
||||
sz = 1;
|
||||
return QVariant(0);
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_never_used(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
Q_UNUSED(end)
|
||||
sz = 1;
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_false(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
sz = 1;
|
||||
return QVariant(false);
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_true(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
sz = 1;
|
||||
return QVariant(true);
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_bin8(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_bin16(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_bin32(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_ext8(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_ext16(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_ext32(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_float32(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_float64(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_uint8(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
quint32 val;
|
||||
val = *(++p);
|
||||
sz = 2;
|
||||
return val;
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_uint16(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
quint32 val;
|
||||
val = *(++p);
|
||||
val |= *(++p) << 8;
|
||||
sz = 3;
|
||||
return val;
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_uint32(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_uint64(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_int8(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_int16(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_int32(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_int64(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_fixext1(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_fixext2(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_fixext4(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_fixext8(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_fixext16(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_str8(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_str16(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_str32(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_array16(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_array32(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_map16(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
QVariant MsgPackPrivate::unpack_map32(quint8 *p, quint8 *end, int &sz)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@@ -5,29 +5,52 @@
|
||||
/* parser functions:
|
||||
* QVariant _type_(quint8 *p, int &i);
|
||||
* parses some type, which data is stored at p
|
||||
*
|
||||
* fill sz with type size
|
||||
*/
|
||||
|
||||
namespace MsgPackPrivate
|
||||
{
|
||||
/* data sizes for types from 0x7f to 0xe0
|
||||
* (without positive and negative fixint)
|
||||
** fixed size types:
|
||||
* possible values: 1, 2, 3, 4, 5, 6, 9, 10, 18 - bytes
|
||||
* 254 - size is in next 1 byte
|
||||
* 253 - 2
|
||||
* 251 - 4
|
||||
** ext formats:
|
||||
* 126 - size is in next byte + 1 type byte
|
||||
* 125 - 2 byte size + 1 type byte
|
||||
* 123 - 4 byte size + 1 type byte
|
||||
*/
|
||||
|
||||
static quint8 data_sizes[96];
|
||||
|
||||
QVariant positive_fixint(quint8 *p);
|
||||
|
||||
|
||||
typedef QVariant (* type_parser_f)(quint8 *p, quint8 *end, int &sz);
|
||||
extern type_parser_f parsers[32];
|
||||
QVariant unpack(quint8 *p, quint8 *end);
|
||||
QVariant unpack_type(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_positive_fixint(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_negative_fixint(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_fixmap(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_fixarray(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_fixstr(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_nil(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_never_used(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_false(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_true(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_bin8(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_bin16(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_bin32(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_ext8(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_ext16(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_ext32(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_float32(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_float64(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_uint8(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_uint16(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_uint32(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_uint64(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_int8(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_int16(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_int32(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_int64(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_fixext1(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_fixext2(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_fixext4(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_fixext8(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_fixext16(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_str8(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_str16(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_str32(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_array16(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_array32(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_map16(quint8 *p, quint8 *end, int &sz);
|
||||
QVariant unpack_map32(quint8 *p, quint8 *end, int &sz);
|
||||
}
|
||||
|
||||
#endif // MSGPACK_P_H
|
||||
|
263
qmsgpack.pro.user
Normal file
263
qmsgpack.pro.user
Normal file
@@ -0,0 +1,263 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 3.1.2, 2014-09-08T00:25:27. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="int">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap"/>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.3 GCC 64bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.3 GCC 64bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.53.gcc_64_kit</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/roman/build/build-qmsgpack-Desktop_Qt_5_3_GCC_64bit-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Отладка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/roman/build/build-qmsgpack-Desktop_Qt_5_3_GCC_64bit-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
|
||||
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Сборка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
|
||||
<value type="QString">-w</value>
|
||||
<value type="QString">-r</value>
|
||||
</valuelist>
|
||||
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Очистка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Выпуск</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Установка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Локальная установка</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
|
||||
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
|
||||
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
|
||||
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
|
||||
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
|
||||
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
|
||||
<value type="int">0</value>
|
||||
<value type="int">1</value>
|
||||
<value type="int">2</value>
|
||||
<value type="int">3</value>
|
||||
<value type="int">4</value>
|
||||
<value type="int">5</value>
|
||||
<value type="int">6</value>
|
||||
<value type="int">7</value>
|
||||
<value type="int">8</value>
|
||||
<value type="int">9</value>
|
||||
<value type="int">10</value>
|
||||
<value type="int">11</value>
|
||||
<value type="int">12</value>
|
||||
<value type="int">13</value>
|
||||
<value type="int">14</value>
|
||||
</valuelist>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmsgpack</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/roman/git/msgpack-qt/qmsgpack.pro</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">qmsgpack.pro</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
|
||||
<value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">false</value>
|
||||
<value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
|
||||
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
|
||||
<value type="QByteArray">{478d7604-9791-49cc-a5a5-2eb4eeaa05bd}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">15</value>
|
||||
</data>
|
||||
</qtcreator>
|
Reference in New Issue
Block a user