MCPcopy Create free account
hub / github.com/PlayFab/gsdk / readValue

Method readValue

cpp/cppsdk/jsoncpp.cpp:403–478  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

401}
402
403bool Reader::readValue() {
404 // readValue() may call itself only if it calls readObject() or ReadArray().
405 // These methods execute nodes_.push() just before and nodes_.pop)() just
406 // after calling readValue(). parse() executes one nodes_.push(), so > instead
407 // of >=.
408 if (nodes_.size() > stackLimit_g)
409 throwRuntimeError("Exceeded stackLimit in readValue().");
410
411 Token token;
412 skipCommentTokens(token);
413 bool successful = true;
414
415 if (collectComments_ && !commentsBefore_.empty()) {
416 currentValue().setComment(commentsBefore_, commentBefore);
417 commentsBefore_.clear();
418 }
419
420 switch (token.type_) {
421 case tokenObjectBegin:
422 successful = readObject(token);
423 currentValue().setOffsetLimit(current_ - begin_);
424 break;
425 case tokenArrayBegin:
426 successful = readArray(token);
427 currentValue().setOffsetLimit(current_ - begin_);
428 break;
429 case tokenNumber:
430 successful = decodeNumber(token);
431 break;
432 case tokenString:
433 successful = decodeString(token);
434 break;
435 case tokenTrue: {
436 Value v(true);
437 currentValue().swapPayload(v);
438 currentValue().setOffsetStart(token.start_ - begin_);
439 currentValue().setOffsetLimit(token.end_ - begin_);
440 } break;
441 case tokenFalse: {
442 Value v(false);
443 currentValue().swapPayload(v);
444 currentValue().setOffsetStart(token.start_ - begin_);
445 currentValue().setOffsetLimit(token.end_ - begin_);
446 } break;
447 case tokenNull: {
448 Value v;
449 currentValue().swapPayload(v);
450 currentValue().setOffsetStart(token.start_ - begin_);
451 currentValue().setOffsetLimit(token.end_ - begin_);
452 } break;
453 case tokenArraySeparator:
454 case tokenObjectEnd:
455 case tokenArrayEnd:
456 if (features_.allowDroppedNullPlaceholders_) {
457 // "Un-read" the current token and mark the current value as a null
458 // token.
459 current_--;
460 Value v;

Callers

nothing calls this directly

Calls 8

throwRuntimeErrorFunction · 0.85
sizeMethod · 0.80
emptyMethod · 0.80
setCommentMethod · 0.80
clearMethod · 0.80
setOffsetLimitMethod · 0.80
swapPayloadMethod · 0.80
setOffsetStartMethod · 0.80

Tested by

no test coverage detected