| Index: third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.h
|
| diff --git a/third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.h b/third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.h
|
| index d7d4347b3ac6ce023fe5915d1592cd04572ee9d8..88ca652b2da177aa6273de84a000f0d533b5caf9 100644
|
| --- a/third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.h
|
| +++ b/third_party/protobuf/src/google/protobuf/util/internal/protostream_objectsource.h
|
| @@ -117,6 +117,7 @@ class LIBPROTOBUF_EXPORT ProtoStreamObjectSource : public ObjectSource {
|
| max_recursion_depth_ = max_depth;
|
| }
|
|
|
| +
|
| protected:
|
| // Writes a proto2 Message to the ObjectWriter. When the given end_tag is
|
| // found this method will complete, allowing it to be used for parsing both
|
| @@ -128,6 +129,28 @@ class LIBPROTOBUF_EXPORT ProtoStreamObjectSource : public ObjectSource {
|
| bool include_start_and_end,
|
| ObjectWriter* ow) const;
|
|
|
| + // Renders a repeating field (packed or unpacked). Returns the next tag after
|
| + // reading all sequential repeating elements. The caller should use this tag
|
| + // before reading more tags from the stream.
|
| + virtual util::StatusOr<uint32> RenderList(
|
| + const google::protobuf::Field* field, StringPiece name, uint32 list_tag,
|
| + ObjectWriter* ow) const;
|
| +
|
| + // Looks up a field and verify its consistency with wire type in tag.
|
| + const google::protobuf::Field* FindAndVerifyField(
|
| + const google::protobuf::Type& type, uint32 tag) const;
|
| +
|
| + // Renders a field value to the ObjectWriter.
|
| + util::Status RenderField(const google::protobuf::Field* field,
|
| + StringPiece field_name, ObjectWriter* ow) const;
|
| +
|
| + // Reads field value according to Field spec in 'field' and returns the read
|
| + // value as string. This only works for primitive datatypes (no message
|
| + // types).
|
| + const string ReadFieldValueAsString(
|
| + const google::protobuf::Field& field) const;
|
| +
|
| +
|
| private:
|
| ProtoStreamObjectSource(google::protobuf::io::CodedInputStream* stream,
|
| const TypeInfo* typeinfo,
|
| @@ -137,19 +160,9 @@ class LIBPROTOBUF_EXPORT ProtoStreamObjectSource : public ObjectSource {
|
| const google::protobuf::Type&,
|
| StringPiece, ObjectWriter*);
|
|
|
| - // Looks up a field and verify its consistency with wire type in tag.
|
| - const google::protobuf::Field* FindAndVerifyField(
|
| - const google::protobuf::Type& type, uint32 tag) const;
|
| -
|
| // TODO(skarvaje): Mark these methods as non-const as they modify internal
|
| // state (stream_).
|
| //
|
| - // Renders a repeating field (packed or unpacked).
|
| - // Returns the next tag after reading all sequential repeating elements. The
|
| - // caller should use this tag before reading more tags from the stream.
|
| - util::StatusOr<uint32> RenderList(const google::protobuf::Field* field,
|
| - StringPiece name, uint32 list_tag,
|
| - ObjectWriter* ow) const;
|
| // Renders a NWP map.
|
| // Returns the next tag after reading all map entries. The caller should use
|
| // this tag before reading more tags from the stream.
|
| @@ -233,10 +246,6 @@ class LIBPROTOBUF_EXPORT ProtoStreamObjectSource : public ObjectSource {
|
| static void DeleteRendererMap();
|
| static TypeRenderer* FindTypeRenderer(const string& type_url);
|
|
|
| - // Renders a field value to the ObjectWriter.
|
| - util::Status RenderField(const google::protobuf::Field* field,
|
| - StringPiece field_name, ObjectWriter* ow) const;
|
| -
|
| // Same as above but renders all non-message field types. Callers don't call
|
| // this function directly. They just use RenderField.
|
| util::Status RenderNonMessageField(const google::protobuf::Field* field,
|
| @@ -244,12 +253,6 @@ class LIBPROTOBUF_EXPORT ProtoStreamObjectSource : public ObjectSource {
|
| ObjectWriter* ow) const;
|
|
|
|
|
| - // Reads field value according to Field spec in 'field' and returns the read
|
| - // value as string. This only works for primitive datatypes (no message
|
| - // types).
|
| - const string ReadFieldValueAsString(
|
| - const google::protobuf::Field& field) const;
|
| -
|
| // Utility function to detect proto maps. The 'field' MUST be repeated.
|
| bool IsMap(const google::protobuf::Field& field) const;
|
|
|
| @@ -270,6 +273,7 @@ class LIBPROTOBUF_EXPORT ProtoStreamObjectSource : public ObjectSource {
|
| // Type information for all the types used in the descriptor. Used to find
|
| // google::protobuf::Type of nested messages/enums.
|
| const TypeInfo* typeinfo_;
|
| +
|
| // Whether this class owns the typeinfo_ object. If true the typeinfo_ object
|
| // should be deleted in the destructor.
|
| bool own_typeinfo_;
|
| @@ -287,6 +291,12 @@ class LIBPROTOBUF_EXPORT ProtoStreamObjectSource : public ObjectSource {
|
| // Maximum allowed recursion depth.
|
| int max_recursion_depth_;
|
|
|
| + // Whether to render unknown fields.
|
| + bool render_unknown_fields_;
|
| +
|
| + // Whether to add trailing zeros for timestamp and duration.
|
| + bool add_trailing_zeros_for_timestamp_and_duration_;
|
| +
|
| GOOGLE_DISALLOW_IMPLICIT_CONSTRUCTORS(ProtoStreamObjectSource);
|
| };
|
|
|
|
|