| Index: third_party/protobuf/src/google/protobuf/util/internal/proto_writer.h
|
| diff --git a/third_party/protobuf/src/google/protobuf/util/internal/proto_writer.h b/third_party/protobuf/src/google/protobuf/util/internal/proto_writer.h
|
| index 957565e745f575410b41cff9dd9dc5d7fa183703..21dff88d72aa7e37ba1541971be733a725280793 100644
|
| --- a/third_party/protobuf/src/google/protobuf/util/internal/proto_writer.h
|
| +++ b/third_party/protobuf/src/google/protobuf/util/internal/proto_writer.h
|
| @@ -32,8 +32,8 @@
|
| #define GOOGLE_PROTOBUF_UTIL_CONVERTER_PROTO_WRITER_H__
|
|
|
| #include <deque>
|
| -#include <google/protobuf/stubs/hash.h>
|
| #include <string>
|
| +#include <vector>
|
|
|
| #include <google/protobuf/stubs/common.h>
|
| #include <google/protobuf/io/coded_stream.h>
|
| @@ -45,6 +45,7 @@
|
| #include <google/protobuf/util/internal/structured_objectwriter.h>
|
| #include <google/protobuf/util/type_resolver.h>
|
| #include <google/protobuf/stubs/bytestream.h>
|
| +#include <google/protobuf/stubs/hash.h>
|
|
|
| namespace google {
|
| namespace protobuf {
|
| @@ -117,6 +118,7 @@ class LIBPROTOBUF_EXPORT ProtoWriter : public StructuredObjectWriter {
|
| return RenderDataPiece(name, DataPiece::NullData());
|
| }
|
|
|
| +
|
| // Renders a DataPiece 'value' into a field whose wire type is determined
|
| // from the given field 'name'.
|
| virtual ProtoWriter* RenderDataPiece(StringPiece name,
|
| @@ -142,6 +144,14 @@ class LIBPROTOBUF_EXPORT ProtoWriter : public StructuredObjectWriter {
|
|
|
| const TypeInfo* typeinfo() { return typeinfo_; }
|
|
|
| + void set_ignore_unknown_fields(bool ignore_unknown_fields) {
|
| + ignore_unknown_fields_ = ignore_unknown_fields;
|
| + }
|
| +
|
| + void set_use_lower_camel_for_enums(bool use_lower_camel_for_enums) {
|
| + use_lower_camel_for_enums_ = use_lower_camel_for_enums;
|
| + }
|
| +
|
| protected:
|
| class LIBPROTOBUF_EXPORT ProtoElement : public BaseElement, public LocationTrackerInterface {
|
| public:
|
| @@ -179,13 +189,15 @@ class LIBPROTOBUF_EXPORT ProtoWriter : public StructuredObjectWriter {
|
| return static_cast<ProtoElement*>(BaseElement::parent());
|
| }
|
|
|
| - // Returns true if the index is already taken by a preceeding oneof input.
|
| + // Returns true if the index is already taken by a preceding oneof input.
|
| bool IsOneofIndexTaken(int32 index);
|
|
|
| // Marks the oneof 'index' as taken. Future inputs to this oneof will
|
| // generate an error.
|
| void TakeOneofIndex(int32 index);
|
|
|
| + bool proto3() { return proto3_; }
|
| +
|
| private:
|
| // Used for access to variables of the enclosing instance of
|
| // ProtoWriter.
|
| @@ -198,6 +210,9 @@ class LIBPROTOBUF_EXPORT ProtoWriter : public StructuredObjectWriter {
|
| // TypeInfo to lookup types.
|
| const TypeInfo* typeinfo_;
|
|
|
| + // Whether the type_ is proto3 or not.
|
| + bool proto3_;
|
| +
|
| // Additional variables if this element is a message:
|
| // (Root element is always a message).
|
| // type_ : the type of this element.
|
| @@ -213,7 +228,7 @@ class LIBPROTOBUF_EXPORT ProtoWriter : public StructuredObjectWriter {
|
|
|
| // Set of oneof indices already seen for the type_. Used to validate
|
| // incoming messages so no more than one oneof is set.
|
| - hash_set<int32> oneof_indices_;
|
| + std::vector<bool> oneof_indices_;
|
|
|
| GOOGLE_DISALLOW_IMPLICIT_CONSTRUCTORS(ProtoElement);
|
| };
|
| @@ -240,7 +255,8 @@ class LIBPROTOBUF_EXPORT ProtoWriter : public StructuredObjectWriter {
|
|
|
| // Lookup the field in the current element. Looks in the base descriptor
|
| // and in any extension. This will report an error if the field cannot be
|
| - // found or if multiple matching extensions are found.
|
| + // found when ignore_unknown_names_ is false or if multiple matching
|
| + // extensions are found.
|
| const google::protobuf::Field* Lookup(StringPiece name);
|
|
|
| // Lookup the field type in the type descriptor. Returns NULL if the type
|
| @@ -293,6 +309,13 @@ class LIBPROTOBUF_EXPORT ProtoWriter : public StructuredObjectWriter {
|
| // Indicates whether we finished writing root message completely.
|
| bool done_;
|
|
|
| + // If true, don't report unknown field names to the listener.
|
| + bool ignore_unknown_fields_;
|
| +
|
| + // If true, check if enum name in camel case or without underscore matches the
|
| + // field name.
|
| + bool use_lower_camel_for_enums_;
|
| +
|
| // Variable for internal state processing:
|
| // element_ : the current element.
|
| // size_insert_: sizes of nested messages.
|
|
|