diff options
Diffstat (limited to 'src/google/protobuf/util/json_util.h')
-rw-r--r-- | src/google/protobuf/util/json_util.h | 84 |
1 files changed, 39 insertions, 45 deletions
diff --git a/src/google/protobuf/util/json_util.h b/src/google/protobuf/util/json_util.h index b1c69813..f62e7f0f 100644 --- a/src/google/protobuf/util/json_util.h +++ b/src/google/protobuf/util/json_util.h @@ -37,6 +37,9 @@ #include <google/protobuf/util/type_resolver.h> #include <google/protobuf/stubs/bytestream.h> + +#include <google/protobuf/port_def.inc> + namespace google { namespace protobuf { namespace io { @@ -77,26 +80,25 @@ struct JsonPrintOptions { // DEPRECATED. Use JsonPrintOptions instead. typedef JsonPrintOptions JsonOptions; -// Converts from protobuf message to JSON. This is a simple wrapper of -// BinaryToJsonString(). It will use the DescriptorPool of the passed-in -// message to resolve Any types. -LIBPROTOBUF_EXPORT util::Status MessageToJsonString(const Message& message, - string* output, - const JsonOptions& options); +// Converts from protobuf message to JSON and appends it to |output|. This is a +// simple wrapper of BinaryToJsonString(). It will use the DescriptorPool of the +// passed-in message to resolve Any types. +PROTOBUF_EXPORT util::Status MessageToJsonString(const Message& message, + std::string* output, + const JsonOptions& options); inline util::Status MessageToJsonString(const Message& message, - string* output) { + std::string* output) { return MessageToJsonString(message, output, JsonOptions()); } // Converts from JSON to protobuf message. This is a simple wrapper of // JsonStringToBinary(). It will use the DescriptorPool of the passed-in // message to resolve Any types. -LIBPROTOBUF_EXPORT util::Status JsonStringToMessage(const string& input, - Message* message, - const JsonParseOptions& options); +PROTOBUF_EXPORT util::Status JsonStringToMessage( + StringPiece input, Message* message, const JsonParseOptions& options); -inline util::Status JsonStringToMessage(const string& input, +inline util::Status JsonStringToMessage(StringPiece input, Message* message) { return JsonStringToMessage(input, message, JsonParseOptions()); } @@ -107,32 +109,27 @@ inline util::Status JsonStringToMessage(const string& input, // 2. input is not valid protobuf wire format, or conflicts with the type // information returned by TypeResolver. // Note that unknown fields will be discarded silently. -LIBPROTOBUF_EXPORT util::Status BinaryToJsonStream( - TypeResolver* resolver, - const string& type_url, +PROTOBUF_EXPORT util::Status BinaryToJsonStream( + TypeResolver* resolver, const std::string& type_url, io::ZeroCopyInputStream* binary_input, - io::ZeroCopyOutputStream* json_output, - const JsonPrintOptions& options); + io::ZeroCopyOutputStream* json_output, const JsonPrintOptions& options); inline util::Status BinaryToJsonStream( - TypeResolver* resolver, const string& type_url, + TypeResolver* resolver, const std::string& type_url, io::ZeroCopyInputStream* binary_input, io::ZeroCopyOutputStream* json_output) { return BinaryToJsonStream(resolver, type_url, binary_input, json_output, JsonPrintOptions()); } -LIBPROTOBUF_EXPORT util::Status BinaryToJsonString( - TypeResolver* resolver, - const string& type_url, - const string& binary_input, - string* json_output, - const JsonPrintOptions& options); +PROTOBUF_EXPORT util::Status BinaryToJsonString( + TypeResolver* resolver, const std::string& type_url, const std::string& binary_input, + std::string* json_output, const JsonPrintOptions& options); inline util::Status BinaryToJsonString(TypeResolver* resolver, - const string& type_url, - const string& binary_input, - string* json_output) { + const std::string& type_url, + const std::string& binary_input, + std::string* json_output) { return BinaryToJsonString(resolver, type_url, binary_input, json_output, JsonPrintOptions()); } @@ -142,47 +139,42 @@ inline util::Status BinaryToJsonString(TypeResolver* resolver, // 1. TypeResolver fails to resolve a type. // 2. input is not valid JSON format, or conflicts with the type // information returned by TypeResolver. -LIBPROTOBUF_EXPORT util::Status JsonToBinaryStream( - TypeResolver* resolver, - const string& type_url, +PROTOBUF_EXPORT util::Status JsonToBinaryStream( + TypeResolver* resolver, const std::string& type_url, io::ZeroCopyInputStream* json_input, - io::ZeroCopyOutputStream* binary_output, - const JsonParseOptions& options); + io::ZeroCopyOutputStream* binary_output, const JsonParseOptions& options); inline util::Status JsonToBinaryStream( TypeResolver* resolver, - const string& type_url, + const std::string& type_url, io::ZeroCopyInputStream* json_input, io::ZeroCopyOutputStream* binary_output) { return JsonToBinaryStream(resolver, type_url, json_input, binary_output, JsonParseOptions()); } -LIBPROTOBUF_EXPORT util::Status JsonToBinaryString( - TypeResolver* resolver, - const string& type_url, - const string& json_input, - string* binary_output, +PROTOBUF_EXPORT util::Status JsonToBinaryString( + TypeResolver* resolver, const std::string& type_url, + StringPiece json_input, std::string* binary_output, const JsonParseOptions& options); -inline util::Status JsonToBinaryString( - TypeResolver* resolver, - const string& type_url, - const string& json_input, - string* binary_output) { +inline util::Status JsonToBinaryString(TypeResolver* resolver, + const std::string& type_url, + StringPiece json_input, + std::string* binary_output) { return JsonToBinaryString(resolver, type_url, json_input, binary_output, JsonParseOptions()); } namespace internal { // Internal helper class. Put in the header so we can write unit-tests for it. -class LIBPROTOBUF_EXPORT ZeroCopyStreamByteSink : public strings::ByteSink { +class PROTOBUF_EXPORT ZeroCopyStreamByteSink : public strings::ByteSink { public: explicit ZeroCopyStreamByteSink(io::ZeroCopyOutputStream* stream) : stream_(stream), buffer_(NULL), buffer_size_(0) {} ~ZeroCopyStreamByteSink(); - virtual void Append(const char* bytes, size_t len); + void Append(const char* bytes, size_t len) override; private: io::ZeroCopyOutputStream* stream_; @@ -195,6 +187,8 @@ class LIBPROTOBUF_EXPORT ZeroCopyStreamByteSink : public strings::ByteSink { } // namespace util } // namespace protobuf - } // namespace google + +#include <google/protobuf/port_undef.inc> + #endif // GOOGLE_PROTOBUF_UTIL_JSON_UTIL_H__ |