| OLD | NEW |
| 1 # Protocol Buffers - Google's data interchange format | 1 # Protocol Buffers - Google's data interchange format |
| 2 # Copyright 2008 Google Inc. All rights reserved. | 2 # Copyright 2008 Google Inc. All rights reserved. |
| 3 # https://developers.google.com/protocol-buffers/ | 3 # https://developers.google.com/protocol-buffers/ |
| 4 # | 4 # |
| 5 # Redistribution and use in source and binary forms, with or without | 5 # Redistribution and use in source and binary forms, with or without |
| 6 # modification, are permitted provided that the following conditions are | 6 # modification, are permitted provided that the following conditions are |
| 7 # met: | 7 # met: |
| 8 # | 8 # |
| 9 # * Redistributions of source code must retain the above copyright | 9 # * Redistributions of source code must retain the above copyright |
| 10 # notice, this list of conditions and the following disclaimer. | 10 # notice, this list of conditions and the following disclaimer. |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 | 41 |
| 42 class GeneratedProtocolMessageType(_message.MessageMeta): | 42 class GeneratedProtocolMessageType(_message.MessageMeta): |
| 43 | 43 |
| 44 """Metaclass for protocol message classes created at runtime from Descriptors. | 44 """Metaclass for protocol message classes created at runtime from Descriptors. |
| 45 | 45 |
| 46 The protocol compiler currently uses this metaclass to create protocol | 46 The protocol compiler currently uses this metaclass to create protocol |
| 47 message classes at runtime. Clients can also manually create their own | 47 message classes at runtime. Clients can also manually create their own |
| 48 classes at runtime, as in this example: | 48 classes at runtime, as in this example: |
| 49 | 49 |
| 50 mydescriptor = Descriptor(.....) | 50 mydescriptor = Descriptor(.....) |
| 51 class MyProtoClass(Message): | 51 factory = symbol_database.Default() |
| 52 __metaclass__ = GeneratedProtocolMessageType | 52 factory.pool.AddDescriptor(mydescriptor) |
| 53 DESCRIPTOR = mydescriptor | 53 MyProtoClass = factory.GetPrototype(mydescriptor) |
| 54 myproto_instance = MyProtoClass() | 54 myproto_instance = MyProtoClass() |
| 55 myproto.foo_field = 23 | 55 myproto.foo_field = 23 |
| 56 ... | 56 ... |
| 57 | 57 |
| 58 The above example will not work for nested types. If you wish to include them, | 58 The above example will not work for nested types. If you wish to include them, |
| 59 use reflection.MakeClass() instead of manually instantiating the class in | 59 use reflection.MakeClass() instead of manually instantiating the class in |
| 60 order to create the appropriate class structure. | 60 order to create the appropriate class structure. |
| 61 """ | 61 """ |
| 62 | 62 |
| 63 # Must be consistent with the protocol-compiler code in | 63 # Must be consistent with the protocol-compiler code in |
| 64 # proto2/compiler/internal/generator.*. | 64 # proto2/compiler/internal/generator.*. |
| 65 _DESCRIPTOR_KEY = 'DESCRIPTOR' | 65 _DESCRIPTOR_KEY = 'DESCRIPTOR' |
| OLD | NEW |