MCPcopy Create free account
hub / github.com/MonaSolutions/MonaServer / readOne

Method readOne

MonaCore/sources/JSONReader.cpp:143–291  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141
142
143bool JSONReader::readOne(UInt8 type, DataWriter& writer) {
144
145 switch (type) {
146
147 case STRING:
148 packet.next(1); // skip "
149 writer.writeString(STR packet.current(), _size);
150 packet.next(_size+1); // skip string"
151 return true;
152
153 case NUMBER:
154 packet.next(_size);
155 writer.writeNumber(_number);
156 return true;
157
158 case BOOLEAN:
159 packet.next(_size);
160 writer.writeBoolean(_number!=0);
161 return true;
162
163 case DATE:
164 packet.next(_size+2); // "date"
165 writer.writeDate(_date);
166 return true;
167
168 case NIL:
169 packet.next(4); // null
170 writer.writeNull();
171 return true;
172
173 case ARRAY: {
174 packet.next(); // skip [
175 // count number of elements
176 UInt32 count(0);
177 countArrayElement(count);
178 // write array
179 writer.beginArray(count);
180 while (count-- > 0) {
181 if(!readNext(writer))
182 writer.writeNull();
183 }
184 writer.endArray();
185 // skip ]
186 current();
187 packet.next();
188
189 return true;
190 }
191 }
192
193 // Object
194 packet.next(); // skip {
195
196 bool started(false);
197 const UInt8* cur(NULL);
198 while ((cur=current()) && *cur != '}') {
199
200 if (started) {

Callers

nothing calls this directly

Calls 15

nextMethod · 0.45
writeStringMethod · 0.45
currentMethod · 0.45
writeNumberMethod · 0.45
writeBooleanMethod · 0.45
writeDateMethod · 0.45
writeNullMethod · 0.45
beginArrayMethod · 0.45
endArrayMethod · 0.45
availableMethod · 0.45
endObjectMethod · 0.45
beginObjectMethod · 0.45

Tested by

no test coverage detected