/** * Return a string with the object information */ QString UAVObject::toString() { QString sout; sout.append( toStringBrief() ); sout.append( toStringData() ); return sout; }
void ValueWriter::writeThis(BSONObjBuilder* b, StringData sd, ObjectWrapper::WriteFieldRecursionFrames* frames) { uassert(17279, str::stream() << "Exceeded depth limit of " << ObjectWrapper::kMaxWriteFieldDepth << " when converting js object to BSON. Do you have a cycle?", frames->size() < ObjectWrapper::kMaxWriteFieldDepth); // Null char should be at the end, not in the string uassert(16985, str::stream() << "JavaScript property (name) contains a null char " << "which is not allowed in BSON. " << (_originalParent ? _originalParent->jsonString() : ""), (std::string::npos == sd.find('\0'))); if (_value.isString()) { JSStringWrapper jsstr; b->append(sd, toStringData(&jsstr)); } else if (_value.isNumber()) { double val = toNumber(); // if previous type was integer, keep it int intval = static_cast<int>(val); if (val == intval && _originalParent) { // This makes copying an object of numbers O(n**2) :( BSONElement elmt = _originalParent->getField(sd); if (elmt.type() == mongo::NumberInt) { b->append(sd, intval); return; } } b->append(sd, val); } else if (_value.isObject()) { _writeObject(b, sd, frames); } else if (_value.isBoolean()) { b->appendBool(sd, _value.toBoolean()); } else if (_value.isUndefined()) { b->appendUndefined(sd); } else if (_value.isNull()) { b->appendNull(sd); } else { uasserted(16662, str::stream() << "unable to convert JavaScript property to mongo element " << sd); } }
std::string LogComponent::getShortName() const { return toStringData().toString(); }
std::string ValueWriter::toString() { JSStringWrapper jsstr; return toStringData(&jsstr).toString(); }
std::string JSStringWrapper::toString() const { return toStringData().toString(); }
std::string IdWrapper::toString() const { JSStringWrapper jsstr; return toStringData(&jsstr).toString(); }
std::string ObjectWrapper::Key::toString(JSContext* cx) { JSStringWrapper jsstr; return toStringData(cx, &jsstr).toString(); }