diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2020-02-04 08:20:25 -0500 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-02-11 22:09:53 +0000 |
commit | 0245f85a0d296c7084ac564ff88dfa5935803c38 (patch) | |
tree | 907a018e6bdb80788648d9355b83fa246fb0ca57 /src/mongo/bson/bsonelement.h | |
parent | ef15d9830681a1c4fe70cc5670b084a3530c27bc (diff) | |
download | mongo-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.h | 53 |
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 |