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 |