summaryrefslogtreecommitdiff
path: root/src/mongo/bson/bsonelement.h
diff options
context:
space:
mode:
authorHenrik Edin <henrik.edin@mongodb.com>2020-02-04 08:20:25 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2020-02-11 22:09:53 +0000
commit0245f85a0d296c7084ac564ff88dfa5935803c38 (patch)
tree907a018e6bdb80788648d9355b83fa246fb0ca57 /src/mongo/bson/bsonelement.h
parentef15d9830681a1c4fe70cc5670b084a3530c27bc (diff)
downloadmongo-0245f85a0d296c7084ac564ff88dfa5935803c38.tar.gz
SERVER-46017 Add truncation support for JSON formatter
Truncated objects will report truncation status in 'truncated' and 'size' sub objects.
Diffstat (limited to 'src/mongo/bson/bsonelement.h')
-rw-r--r--src/mongo/bson/bsonelement.h53
1 files changed, 33 insertions, 20 deletions
diff --git a/src/mongo/bson/bsonelement.h b/src/mongo/bson/bsonelement.h
index a012ee3c169..e3a0e37a2bc 100644
--- a/src/mongo/bson/bsonelement.h
+++ b/src/mongo/bson/bsonelement.h
@@ -212,26 +212,37 @@ public:
int depth = 0) const;
std::string jsonString(JsonStringFormat format,
+ bool includeSeparator,
bool includeFieldNames = true,
- int pretty = 0) const;
+ int pretty = 0,
+ size_t writeLimit = 0,
+ BSONObj* outTruncationResult = nullptr) const;
- void jsonStringBuffer(JsonStringFormat format,
- bool includeFieldNames,
- int pretty,
- fmt::memory_buffer& buffer) const;
-
- void jsonStringGenerator(ExtendedCanonicalV200Generator const& generator,
- bool includeFieldNames,
- int pretty,
- fmt::memory_buffer& buffer) const;
- void jsonStringGenerator(ExtendedRelaxedV200Generator const& generator,
- bool includeFieldNames,
- int pretty,
- fmt::memory_buffer& buffer) const;
- void jsonStringGenerator(LegacyStrictGenerator const& generator,
+ BSONObj jsonStringBuffer(JsonStringFormat format,
+ bool includeSeparator,
bool includeFieldNames,
int pretty,
- fmt::memory_buffer& buffer) const;
+ fmt::memory_buffer& buffer,
+ size_t writeLimit = 0) const;
+
+ BSONObj jsonStringGenerator(ExtendedCanonicalV200Generator const& generator,
+ bool includeSeparator,
+ bool includeFieldNames,
+ int pretty,
+ fmt::memory_buffer& buffer,
+ size_t writeLimit = 0) const;
+ BSONObj jsonStringGenerator(ExtendedRelaxedV200Generator const& generator,
+ bool includeSeparator,
+ bool includeFieldNames,
+ int pretty,
+ fmt::memory_buffer& buffer,
+ size_t writeLimit = 0) const;
+ BSONObj jsonStringGenerator(LegacyStrictGenerator const& generator,
+ bool includeSeparator,
+ bool includeFieldNames,
+ int pretty,
+ fmt::memory_buffer& buffer,
+ size_t writeLimit = 0) const;
operator std::string() const {
return toString();
@@ -772,10 +783,12 @@ public:
private:
template <typename Generator>
- void _jsonStringGenerator(const Generator& g,
- bool includeFieldNames,
- int pretty,
- fmt::memory_buffer& buffer) const;
+ BSONObj _jsonStringGenerator(const Generator& g,
+ bool includeSeparator,
+ bool includeFieldNames,
+ int pretty,
+ fmt::memory_buffer& buffer,
+ size_t writeLimit) const;
const char* data;
int fieldNameSize_; // internal size includes null terminator