MCPcopy Create free account
hub / github.com/ValveSoftware/Proton / writeValue

Method writeValue

vrclient_x64/jsoncpp.cpp:4377–4429  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4375}
4376
4377void FastWriter::writeValue(const Value& value) {
4378 switch (value.type()) {
4379 case nullValue:
4380 if (!dropNullPlaceholders_)
4381 document_ += "null";
4382 break;
4383 case intValue:
4384 document_ += valueToString(value.asLargestInt());
4385 break;
4386 case uintValue:
4387 document_ += valueToString(value.asLargestUInt());
4388 break;
4389 case realValue:
4390 document_ += valueToString(value.asDouble());
4391 break;
4392 case stringValue:
4393 {
4394 // Is NULL possible for value.string_?
4395 char const* str;
4396 char const* end;
4397 bool ok = value.getString(&str, &end);
4398 if (ok) document_ += valueToQuotedStringN(str, static_cast<unsigned>(end-str));
4399 break;
4400 }
4401 case booleanValue:
4402 document_ += valueToString(value.asBool());
4403 break;
4404 case arrayValue: {
4405 document_ += '[';
4406 int size = value.size();
4407 for (int index = 0; index < size; ++index) {
4408 if (index > 0)
4409 document_ += ',';
4410 writeValue(value[index]);
4411 }
4412 document_ += ']';
4413 } break;
4414 case objectValue: {
4415 Value::Members members(value.getMemberNames());
4416 document_ += '{';
4417 for (Value::Members::iterator it = members.begin(); it != members.end();
4418 ++it) {
4419 const std::string& name = *it;
4420 if (it != members.begin())
4421 document_ += ',';
4422 document_ += valueToQuotedStringN(name.data(), static_cast<unsigned>(name.length()));
4423 document_ += yamlCompatiblityEnabled_ ? ": " : ":";
4424 writeValue(value[name]);
4425 }
4426 document_ += '}';
4427 } break;
4428 }
4429}
4430
4431// Class StyledWriter
4432// //////////////////////////////////////////////////////////////////

Callers

nothing calls this directly

Calls 15

valueToStringFunction · 0.85
valueToQuotedStringNFunction · 0.85
valueToQuotedStringFunction · 0.85
typeMethod · 0.80
asLargestIntMethod · 0.80
asLargestUIntMethod · 0.80
asDoubleMethod · 0.80
getStringMethod · 0.80
asBoolMethod · 0.80
sizeMethod · 0.80
getMemberNamesMethod · 0.80
beginMethod · 0.80

Tested by

no test coverage detected