-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrapidjsonhandler.cpp
More file actions
114 lines (101 loc) · 2.71 KB
/
Copy pathrapidjsonhandler.cpp
File metadata and controls
114 lines (101 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#include "rapidjsonhandler.h"
using namespace rapidjson;
RapidJsonHandler::RapidJsonHandler()
{}
void RapidJsonHandler::Init(std::vector<std::vector<QPoint> > *_boneVector)
{
boneVector = _boneVector;
state_ = kExpectObjectStart;
}
bool RapidJsonHandler::Null(){ qDebug() << "Null"; return false; }
bool RapidJsonHandler::Bool(bool b){ qDebug() << "Bool" << b; return false; }
bool RapidJsonHandler::Int(int i){ qDebug() << "Int" << i; return false; }
bool RapidJsonHandler::Int64(int64_t i){ qDebug() << "Int64" << i; return false; }
bool RapidJsonHandler::Uint64(uint64_t i){ qDebug() << "UInt64" << i; return false; }
bool RapidJsonHandler::Double(double d){ qDebug() << "Double" << d; return false; }
bool RapidJsonHandler::String(const MemoryStream::Ch* str, SizeType length, bool copy){ qDebug() << "String" << str; return false; }
bool RapidJsonHandler::Uint(unsigned i)
{
switch (state_)
{
case kExpectPoint_X:
state_ = kExpectPoint_Y;
point_x = i;
return true;
case kExpectPoint_Y:
state_ = kExpectPointEnd;
point_y = i;
return true;
default:
return false;
}
}
bool RapidJsonHandler::StartObject()
{
switch (state_)
{
case kExpectObjectStart:
boneVector->clear();
state_ = kExpectKeyOrObjectEnd;
return true;
default:
return false;
}
}
bool RapidJsonHandler::Key(const MemoryStream::Ch* str, SizeType length, bool copy)
{
switch (state_)
{
case kExpectKeyOrObjectEnd:
state_ = kExpectBoneStart;
return true;
default:
return false;
}
}
bool RapidJsonHandler::EndObject(SizeType memberCount)
{
state_ = kExpectObjectStart;
return true;
}
bool RapidJsonHandler::StartArray()
{
switch (state_)
{
case kExpectBoneStart:
state_ = kExpectBoneEndOrPointStart;
boneVector->push_back(std::vector<QPoint>());
return true;
case kExpectBoneEndOrPointStart:
state_ = kExpectPoint_X;
return true;
default:
return false;
}
}
bool RapidJsonHandler::EndArray(SizeType elementCount)
{
switch (state_)
{
case kExpectPointEnd:
state_ = kExpectBoneEndOrPointStart;
boneVector->back().push_back(QPoint(point_x, point_y));
return true;
case kExpectBoneEndOrPointStart:
state_ = kExpectKeyOrObjectEnd;
return true;
default:
return false;
}
}
///
void RapidJsonHandler::test_ShowBoneList()
{
for (int i = 0; i < (int)boneVector->size(); i++)
{
for (int j = 0; j < (int)boneVector->at(i).size(); j++)
{
qInfo() << "rapid json handler boneVector" << i << j << "=" << boneVector->at(i).at(j);
}
}
}