| Index: third_party/protobuf/python/google/protobuf/reflection.py
|
| ===================================================================
|
| --- third_party/protobuf/python/google/protobuf/reflection.py (revision 216642)
|
| +++ third_party/protobuf/python/google/protobuf/reflection.py (working copy)
|
| @@ -50,13 +50,20 @@
|
|
|
| from google.protobuf.internal import api_implementation
|
| from google.protobuf import descriptor as descriptor_mod
|
| +from google.protobuf import message
|
| +
|
| _FieldDescriptor = descriptor_mod.FieldDescriptor
|
|
|
|
|
| if api_implementation.Type() == 'cpp':
|
| - from google.protobuf.internal import cpp_message
|
| - _NewMessage = cpp_message.NewMessage
|
| - _InitMessage = cpp_message.InitMessage
|
| + if api_implementation.Version() == 2:
|
| + from google.protobuf.internal.cpp import cpp_message
|
| + _NewMessage = cpp_message.NewMessage
|
| + _InitMessage = cpp_message.InitMessage
|
| + else:
|
| + from google.protobuf.internal import cpp_message
|
| + _NewMessage = cpp_message.NewMessage
|
| + _InitMessage = cpp_message.InitMessage
|
| else:
|
| from google.protobuf.internal import python_message
|
| _NewMessage = python_message.NewMessage
|
| @@ -112,7 +119,7 @@
|
| Newly-allocated class.
|
| """
|
| descriptor = dictionary[GeneratedProtocolMessageType._DESCRIPTOR_KEY]
|
| - _NewMessage(descriptor, dictionary)
|
| + bases = _NewMessage(bases, descriptor, dictionary)
|
| superclass = super(GeneratedProtocolMessageType, cls)
|
|
|
| new_class = superclass.__new__(cls, name, bases, dictionary)
|
| @@ -140,3 +147,23 @@
|
| _InitMessage(descriptor, cls)
|
| superclass = super(GeneratedProtocolMessageType, cls)
|
| superclass.__init__(name, bases, dictionary)
|
| +
|
| +
|
| +def ParseMessage(descriptor, byte_str):
|
| + """Generate a new Message instance from this Descriptor and a byte string.
|
| +
|
| + Args:
|
| + descriptor: Protobuf Descriptor object
|
| + byte_str: Serialized protocol buffer byte string
|
| +
|
| + Returns:
|
| + Newly created protobuf Message object.
|
| + """
|
| +
|
| + class _ResultClass(message.Message):
|
| + __metaclass__ = GeneratedProtocolMessageType
|
| + DESCRIPTOR = descriptor
|
| +
|
| + new_msg = _ResultClass()
|
| + new_msg.ParseFromString(byte_str)
|
| + return new_msg
|
|
|