Index: third_party/protobuf/src/google/protobuf/any.h |
diff --git a/third_party/protobuf/src/google/protobuf/any.h b/third_party/protobuf/src/google/protobuf/any.h |
index c8dbef1301c105398e82538faf6d42f797848576..04e541667f458c7287b6c951b13ae08d5669308e 100644 |
--- a/third_party/protobuf/src/google/protobuf/any.h |
+++ b/third_party/protobuf/src/google/protobuf/any.h |
@@ -50,10 +50,26 @@ class LIBPROTOBUF_EXPORT AnyMetadata { |
// AnyMetadata does not take ownership of "type_url" and "value". |
AnyMetadata(UrlType* type_url, ValueType* value); |
+ // Packs a message using the default type URL prefix: "type.googleapis.com". |
+ // The resulted type URL will be "type.googleapis.com/<message_full_name>". |
void PackFrom(const Message& message); |
- |
+ // Packs a message using the given type URL prefix. The type URL will be |
+ // constructed by concatenating the message type's full name to the prefix |
+ // with an optional "/" separator if the prefix doesn't already end up "/". |
+ // For example, both PackFrom(message, "type.googleapis.com") and |
+ // PackFrom(message, "type.googleapis.com/") yield the same result type |
+ // URL: "type.googleapis.com/<message_full_name>". |
+ void PackFrom(const Message& message, const string& type_url_prefix); |
+ |
+ // Unpacks the payload into the given message. Returns false if the message's |
+ // type doesn't match the type specified in the type URL (i.e., the full |
+ // name after the last "/" of the type URL doesn't match the message's actaul |
+ // full name) or parsing the payload has failed. |
bool UnpackTo(Message* message) const; |
+ // Checks whether the type specified in the type URL matches the given type. |
+ // A type is consdiered matching if its full name matches the full name after |
+ // the last "/" in the type URL. |
template<typename T> |
bool Is() const { |
return InternalIs(T::default_instance().GetDescriptor()); |