protoc 2.6.1.1 → 2.6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. checksums.yaml +4 -4
  2. data/ext/protoc/Makefile.in +10 -13
  3. data/ext/protoc/extconf.rb +0 -1
  4. data/ext/protoc/protobuf/CHANGES.txt +593 -0
  5. data/ext/protoc/protobuf/CONTRIBUTORS.txt +93 -0
  6. data/ext/protoc/protobuf/INSTALL.txt +237 -0
  7. data/ext/protoc/protobuf/LICENSE +33 -0
  8. data/ext/protoc/protobuf/Makefile.am +267 -0
  9. data/ext/protoc/protobuf/README.md +167 -0
  10. data/ext/protoc/protobuf/autogen.sh +41 -0
  11. data/ext/protoc/protobuf/benchmarks/ProtoBench.java +203 -0
  12. data/ext/protoc/protobuf/benchmarks/google_message1.dat +0 -0
  13. data/ext/protoc/protobuf/benchmarks/google_message2.dat +0 -0
  14. data/ext/protoc/protobuf/benchmarks/google_size.proto +136 -0
  15. data/ext/protoc/protobuf/benchmarks/google_speed.proto +136 -0
  16. data/ext/protoc/protobuf/benchmarks/readme.txt +50 -0
  17. data/ext/protoc/protobuf/configure.ac +159 -0
  18. data/ext/protoc/protobuf/editors/README.txt +5 -0
  19. data/ext/protoc/protobuf/editors/proto.vim +105 -0
  20. data/ext/protoc/protobuf/editors/protobuf-mode.el +220 -0
  21. data/ext/protoc/protobuf/examples/AddPerson.java +95 -0
  22. data/ext/protoc/protobuf/examples/ListPeople.java +50 -0
  23. data/ext/protoc/protobuf/examples/Makefile +58 -0
  24. data/ext/protoc/protobuf/examples/README.txt +29 -0
  25. data/ext/protoc/protobuf/examples/add_person.cc +95 -0
  26. data/ext/protoc/protobuf/examples/add_person.py +58 -0
  27. data/ext/protoc/protobuf/examples/addressbook.proto +30 -0
  28. data/ext/protoc/protobuf/examples/list_people.cc +68 -0
  29. data/ext/protoc/protobuf/examples/list_people.py +38 -0
  30. data/ext/protoc/protobuf/generate_descriptor_proto.sh +33 -0
  31. data/ext/protoc/protobuf/java/README.txt +96 -0
  32. data/ext/protoc/protobuf/java/pom.xml +217 -0
  33. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/AbstractMessage.java +466 -0
  34. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/AbstractMessageLite.java +355 -0
  35. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/AbstractParser.java +253 -0
  36. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/BlockingRpcChannel.java +51 -0
  37. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/BlockingService.java +64 -0
  38. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/BoundedByteString.java +163 -0
  39. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ByteString.java +1022 -0
  40. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/CodedInputStream.java +1311 -0
  41. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/CodedOutputStream.java +1297 -0
  42. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Descriptors.java +2238 -0
  43. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/DynamicMessage.java +622 -0
  44. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Extension.java +96 -0
  45. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ExtensionRegistry.java +392 -0
  46. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ExtensionRegistryLite.java +185 -0
  47. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/FieldSet.java +907 -0
  48. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessage.java +2213 -0
  49. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java +949 -0
  50. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Internal.java +391 -0
  51. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java +122 -0
  52. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyField.java +154 -0
  53. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyFieldLite.java +176 -0
  54. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyStringArrayList.java +367 -0
  55. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyStringList.java +163 -0
  56. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LiteralByteString.java +362 -0
  57. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Message.java +244 -0
  58. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageLite.java +320 -0
  59. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageLiteOrBuilder.java +60 -0
  60. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageOrBuilder.java +143 -0
  61. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageReflection.java +931 -0
  62. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Parser.java +261 -0
  63. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ProtocolMessageEnum.java +58 -0
  64. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ProtocolStringList.java +48 -0
  65. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java +696 -0
  66. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RopeByteString.java +957 -0
  67. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcCallback.java +47 -0
  68. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcChannel.java +71 -0
  69. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcController.java +118 -0
  70. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcUtil.java +134 -0
  71. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Service.java +117 -0
  72. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ServiceException.java +52 -0
  73. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/SingleFieldBuilder.java +241 -0
  74. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/SmallSortedMap.java +618 -0
  75. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/TextFormat.java +1984 -0
  76. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/UninitializedMessageException.java +99 -0
  77. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/UnknownFieldSet.java +995 -0
  78. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java +205 -0
  79. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Utf8.java +349 -0
  80. data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/WireFormat.java +163 -0
  81. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/AbstractMessageTest.java +527 -0
  82. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/BoundedByteStringTest.java +68 -0
  83. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ByteStringTest.java +759 -0
  84. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/CheckUtf8Test.java +141 -0
  85. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/CodedInputStreamTest.java +769 -0
  86. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/CodedOutputStreamTest.java +401 -0
  87. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/DeprecatedFieldTest.java +80 -0
  88. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/DescriptorsTest.java +735 -0
  89. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/DynamicMessageTest.java +326 -0
  90. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java +48 -0
  91. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/GeneratedMessageTest.java +1515 -0
  92. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/IsValidUtf8Test.java +180 -0
  93. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/IsValidUtf8TestUtil.java +421 -0
  94. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyFieldLiteTest.java +134 -0
  95. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyFieldTest.java +121 -0
  96. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyMessageLiteTest.java +319 -0
  97. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyStringArrayListTest.java +174 -0
  98. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyStringEndToEndTest.java +143 -0
  99. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LiteEqualsAndHashTest.java +85 -0
  100. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LiteTest.java +148 -0
  101. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LiteralByteStringTest.java +396 -0
  102. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/MessageTest.java +353 -0
  103. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/NestedBuildersTest.java +185 -0
  104. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ParserTest.java +381 -0
  105. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/RepeatedFieldBuilderTest.java +190 -0
  106. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/RopeByteStringSubstringTest.java +97 -0
  107. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/RopeByteStringTest.java +115 -0
  108. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ServiceTest.java +320 -0
  109. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/SingleFieldBuilderTest.java +155 -0
  110. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/SmallSortedMapTest.java +420 -0
  111. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/TestBadIdentifiers.java +96 -0
  112. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/TestUtil.java +4124 -0
  113. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/TextFormatTest.java +994 -0
  114. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/UnknownFieldSetTest.java +653 -0
  115. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/UnmodifiableLazyStringListTest.java +227 -0
  116. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/WireFormatTest.java +606 -0
  117. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/lazy_fields_lite.proto +61 -0
  118. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/lite_equals_and_hash.proto +55 -0
  119. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/multiple_files_test.proto +77 -0
  120. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/nested_builders_test.proto +53 -0
  121. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/nested_extension.proto +46 -0
  122. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/nested_extension_lite.proto +48 -0
  123. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/non_nested_extension.proto +49 -0
  124. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/non_nested_extension_lite.proto +50 -0
  125. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/outer_class_name_test.proto +38 -0
  126. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/outer_class_name_test2.proto +42 -0
  127. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/outer_class_name_test3.proto +43 -0
  128. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_bad_identifiers.proto +157 -0
  129. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_check_utf8.proto +50 -0
  130. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_check_utf8_size.proto +51 -0
  131. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_custom_options.proto +43 -0
  132. data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_extra_interfaces.proto +60 -0
  133. data/ext/protoc/protobuf/m4/ac_system_extensions.m4 +37 -0
  134. data/ext/protoc/protobuf/m4/acx_check_suncc.m4 +75 -0
  135. data/ext/protoc/protobuf/m4/acx_pthread.m4 +397 -0
  136. data/ext/protoc/protobuf/m4/stl_hash.m4 +72 -0
  137. data/ext/protoc/protobuf/more_tests/Makefile +41 -0
  138. data/ext/protoc/protobuf/post_process_dist.sh +60 -0
  139. data/ext/protoc/protobuf/protobuf-lite.pc.in +13 -0
  140. data/ext/protoc/protobuf/protobuf.pc.in +14 -0
  141. data/ext/protoc/protobuf/python/README.txt +105 -0
  142. data/ext/protoc/protobuf/python/ez_setup.py +284 -0
  143. data/ext/protoc/protobuf/python/google/__init__.py +1 -0
  144. data/ext/protoc/protobuf/python/google/protobuf/__init__.py +0 -0
  145. data/ext/protoc/protobuf/python/google/protobuf/descriptor.py +849 -0
  146. data/ext/protoc/protobuf/python/google/protobuf/descriptor_database.py +137 -0
  147. data/ext/protoc/protobuf/python/google/protobuf/descriptor_pool.py +643 -0
  148. data/ext/protoc/protobuf/python/google/protobuf/internal/__init__.py +0 -0
  149. data/ext/protoc/protobuf/python/google/protobuf/internal/api_implementation.cc +139 -0
  150. data/ext/protoc/protobuf/python/google/protobuf/internal/api_implementation.py +89 -0
  151. data/ext/protoc/protobuf/python/google/protobuf/internal/api_implementation_default_test.py +63 -0
  152. data/ext/protoc/protobuf/python/google/protobuf/internal/containers.py +269 -0
  153. data/ext/protoc/protobuf/python/google/protobuf/internal/cpp_message.py +663 -0
  154. data/ext/protoc/protobuf/python/google/protobuf/internal/decoder.py +831 -0
  155. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_database_test.py +63 -0
  156. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_pool_test.py +564 -0
  157. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_pool_test1.proto +94 -0
  158. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_pool_test2.proto +70 -0
  159. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_python_test.py +54 -0
  160. data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_test.py +669 -0
  161. data/ext/protoc/protobuf/python/google/protobuf/internal/encoder.py +788 -0
  162. data/ext/protoc/protobuf/python/google/protobuf/internal/enum_type_wrapper.py +89 -0
  163. data/ext/protoc/protobuf/python/google/protobuf/internal/factory_test1.proto +57 -0
  164. data/ext/protoc/protobuf/python/google/protobuf/internal/factory_test2.proto +92 -0
  165. data/ext/protoc/protobuf/python/google/protobuf/internal/generator_test.py +343 -0
  166. data/ext/protoc/protobuf/python/google/protobuf/internal/message_factory_python_test.py +54 -0
  167. data/ext/protoc/protobuf/python/google/protobuf/internal/message_factory_test.py +131 -0
  168. data/ext/protoc/protobuf/python/google/protobuf/internal/message_listener.py +78 -0
  169. data/ext/protoc/protobuf/python/google/protobuf/internal/message_python_test.py +54 -0
  170. data/ext/protoc/protobuf/python/google/protobuf/internal/message_test.py +681 -0
  171. data/ext/protoc/protobuf/python/google/protobuf/internal/missing_enum_values.proto +50 -0
  172. data/ext/protoc/protobuf/python/google/protobuf/internal/more_extensions.proto +58 -0
  173. data/ext/protoc/protobuf/python/google/protobuf/internal/more_extensions_dynamic.proto +49 -0
  174. data/ext/protoc/protobuf/python/google/protobuf/internal/more_messages.proto +51 -0
  175. data/ext/protoc/protobuf/python/google/protobuf/internal/python_message.py +1251 -0
  176. data/ext/protoc/protobuf/python/google/protobuf/internal/reflection_test.py +2934 -0
  177. data/ext/protoc/protobuf/python/google/protobuf/internal/service_reflection_test.py +136 -0
  178. data/ext/protoc/protobuf/python/google/protobuf/internal/symbol_database_test.py +120 -0
  179. data/ext/protoc/protobuf/python/google/protobuf/internal/test_bad_identifiers.proto +52 -0
  180. data/ext/protoc/protobuf/python/google/protobuf/internal/test_util.py +662 -0
  181. data/ext/protoc/protobuf/python/google/protobuf/internal/text_encoding_test.py +68 -0
  182. data/ext/protoc/protobuf/python/google/protobuf/internal/text_format_test.py +743 -0
  183. data/ext/protoc/protobuf/python/google/protobuf/internal/type_checkers.py +328 -0
  184. data/ext/protoc/protobuf/python/google/protobuf/internal/unknown_fields_test.py +231 -0
  185. data/ext/protoc/protobuf/python/google/protobuf/internal/wire_format.py +268 -0
  186. data/ext/protoc/protobuf/python/google/protobuf/internal/wire_format_test.py +253 -0
  187. data/ext/protoc/protobuf/python/google/protobuf/message.py +284 -0
  188. data/ext/protoc/protobuf/python/google/protobuf/message_factory.py +155 -0
  189. data/ext/protoc/protobuf/python/google/protobuf/pyext/README +6 -0
  190. data/ext/protoc/protobuf/python/google/protobuf/pyext/__init__.py +0 -0
  191. data/ext/protoc/protobuf/python/google/protobuf/pyext/cpp_message.py +61 -0
  192. data/ext/protoc/protobuf/python/google/protobuf/pyext/descriptor.cc +357 -0
  193. data/ext/protoc/protobuf/python/google/protobuf/pyext/descriptor.h +96 -0
  194. data/ext/protoc/protobuf/python/google/protobuf/pyext/descriptor_cpp2_test.py +58 -0
  195. data/ext/protoc/protobuf/python/google/protobuf/pyext/extension_dict.cc +338 -0
  196. data/ext/protoc/protobuf/python/google/protobuf/pyext/extension_dict.h +123 -0
  197. data/ext/protoc/protobuf/python/google/protobuf/pyext/message.cc +2561 -0
  198. data/ext/protoc/protobuf/python/google/protobuf/pyext/message.h +305 -0
  199. data/ext/protoc/protobuf/python/google/protobuf/pyext/message_factory_cpp2_test.py +56 -0
  200. data/ext/protoc/protobuf/python/google/protobuf/pyext/proto2_api_test.proto +38 -0
  201. data/ext/protoc/protobuf/python/google/protobuf/pyext/python.proto +66 -0
  202. data/ext/protoc/protobuf/python/google/protobuf/pyext/python_protobuf.h +57 -0
  203. data/ext/protoc/protobuf/python/google/protobuf/pyext/reflection_cpp2_generated_test.py +94 -0
  204. data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_composite_container.cc +763 -0
  205. data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_composite_container.h +172 -0
  206. data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_scalar_container.cc +825 -0
  207. data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_scalar_container.h +112 -0
  208. data/ext/protoc/protobuf/python/google/protobuf/pyext/scoped_pyobject_ptr.h +95 -0
  209. data/ext/protoc/protobuf/python/google/protobuf/reflection.py +205 -0
  210. data/ext/protoc/protobuf/python/google/protobuf/service.py +226 -0
  211. data/ext/protoc/protobuf/python/google/protobuf/service_reflection.py +284 -0
  212. data/ext/protoc/protobuf/python/google/protobuf/symbol_database.py +185 -0
  213. data/ext/protoc/protobuf/python/google/protobuf/text_encoding.py +110 -0
  214. data/ext/protoc/protobuf/python/google/protobuf/text_format.py +873 -0
  215. data/ext/protoc/protobuf/python/mox.py +1401 -0
  216. data/ext/protoc/protobuf/python/setup.py +201 -0
  217. data/ext/protoc/protobuf/python/stubout.py +140 -0
  218. data/ext/protoc/protobuf/src/Makefile.am +418 -0
  219. data/ext/protoc/protobuf/src/google/protobuf/SEBS +240 -0
  220. data/ext/protoc/protobuf/src/google/protobuf/compiler/code_generator.cc +84 -0
  221. data/ext/protoc/protobuf/src/google/protobuf/compiler/code_generator.h +145 -0
  222. data/ext/protoc/protobuf/src/google/protobuf/compiler/command_line_interface.cc +1603 -0
  223. data/ext/protoc/protobuf/src/google/protobuf/compiler/command_line_interface.h +378 -0
  224. data/ext/protoc/protobuf/src/google/protobuf/compiler/command_line_interface_unittest.cc +1654 -0
  225. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc +158 -0
  226. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc +288 -0
  227. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.h +103 -0
  228. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc +431 -0
  229. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.h +122 -0
  230. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc +210 -0
  231. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.h +86 -0
  232. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc +166 -0
  233. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_field.h +185 -0
  234. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc +665 -0
  235. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_file.h +99 -0
  236. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc +125 -0
  237. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.h +72 -0
  238. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc +494 -0
  239. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.h +206 -0
  240. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc +2645 -0
  241. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message.h +175 -0
  242. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc +375 -0
  243. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.h +121 -0
  244. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_options.h +58 -0
  245. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_plugin_unittest.cc +123 -0
  246. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc +451 -0
  247. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.h +123 -0
  248. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc +334 -0
  249. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h +118 -0
  250. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc +642 -0
  251. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.h +127 -0
  252. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto +132 -0
  253. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.cc +2074 -0
  254. data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.h +51 -0
  255. data/ext/protoc/protobuf/src/google/protobuf/compiler/importer.cc +480 -0
  256. data/ext/protoc/protobuf/src/google/protobuf/compiler/importer.h +317 -0
  257. data/ext/protoc/protobuf/src/google/protobuf/compiler/importer_unittest.cc +617 -0
  258. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_context.cc +195 -0
  259. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_context.h +95 -0
  260. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc +233 -0
  261. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_doc_comment.h +69 -0
  262. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_doc_comment_unittest.cc +67 -0
  263. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum.cc +333 -0
  264. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum.h +99 -0
  265. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum_field.cc +778 -0
  266. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum_field.h +158 -0
  267. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_extension.cc +207 -0
  268. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_extension.h +109 -0
  269. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_field.cc +213 -0
  270. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_field.h +162 -0
  271. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_file.cc +534 -0
  272. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_file.h +115 -0
  273. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator.cc +158 -0
  274. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator.h +72 -0
  275. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc +77 -0
  276. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator_factory.h +101 -0
  277. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_helpers.cc +737 -0
  278. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_helpers.h +322 -0
  279. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field.cc +826 -0
  280. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field.h +121 -0
  281. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message.cc +1666 -0
  282. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message.h +140 -0
  283. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message_field.cc +1343 -0
  284. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message_field.h +173 -0
  285. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc +266 -0
  286. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_name_resolver.h +124 -0
  287. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_plugin_unittest.cc +124 -0
  288. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc +877 -0
  289. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_primitive_field.h +160 -0
  290. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_service.cc +473 -0
  291. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_service.h +135 -0
  292. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc +201 -0
  293. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.h +90 -0
  294. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_string_field.cc +1056 -0
  295. data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_string_field.h +160 -0
  296. data/ext/protoc/protobuf/src/google/protobuf/compiler/main.cc +61 -0
  297. data/ext/protoc/protobuf/src/google/protobuf/compiler/mock_code_generator.cc +240 -0
  298. data/ext/protoc/protobuf/src/google/protobuf/compiler/mock_code_generator.h +117 -0
  299. data/ext/protoc/protobuf/src/google/protobuf/compiler/package_info.h +64 -0
  300. data/ext/protoc/protobuf/src/google/protobuf/compiler/parser.cc +1750 -0
  301. data/ext/protoc/protobuf/src/google/protobuf/compiler/parser.h +522 -0
  302. data/ext/protoc/protobuf/src/google/protobuf/compiler/parser_unittest.cc +2612 -0
  303. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.cc +163 -0
  304. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.h +72 -0
  305. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.pb.cc +1148 -0
  306. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.pb.h +897 -0
  307. data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.proto +147 -0
  308. data/ext/protoc/protobuf/src/google/protobuf/compiler/python/python_generator.cc +1262 -0
  309. data/ext/protoc/protobuf/src/google/protobuf/compiler/python/python_generator.h +166 -0
  310. data/ext/protoc/protobuf/src/google/protobuf/compiler/python/python_plugin_unittest.cc +118 -0
  311. data/ext/protoc/protobuf/src/google/protobuf/compiler/subprocess.cc +463 -0
  312. data/ext/protoc/protobuf/src/google/protobuf/compiler/subprocess.h +108 -0
  313. data/ext/protoc/protobuf/src/google/protobuf/compiler/test_plugin.cc +51 -0
  314. data/ext/protoc/protobuf/src/google/protobuf/compiler/zip_output_unittest.sh +91 -0
  315. data/ext/protoc/protobuf/src/google/protobuf/compiler/zip_writer.cc +218 -0
  316. data/ext/protoc/protobuf/src/google/protobuf/compiler/zip_writer.h +93 -0
  317. data/ext/protoc/protobuf/src/google/protobuf/descriptor.cc +5420 -0
  318. data/ext/protoc/protobuf/src/google/protobuf/descriptor.h +1691 -0
  319. data/ext/protoc/protobuf/src/google/protobuf/descriptor.pb.cc +9135 -0
  320. data/ext/protoc/protobuf/src/google/protobuf/descriptor.pb.h +6761 -0
  321. data/ext/protoc/protobuf/src/google/protobuf/descriptor.proto +687 -0
  322. data/ext/protoc/protobuf/src/google/protobuf/descriptor_database.cc +543 -0
  323. data/ext/protoc/protobuf/src/google/protobuf/descriptor_database.h +369 -0
  324. data/ext/protoc/protobuf/src/google/protobuf/descriptor_database_unittest.cc +748 -0
  325. data/ext/protoc/protobuf/src/google/protobuf/descriptor_pb2_test.py +54 -0
  326. data/ext/protoc/protobuf/src/google/protobuf/descriptor_unittest.cc +5501 -0
  327. data/ext/protoc/protobuf/src/google/protobuf/dynamic_message.cc +764 -0
  328. data/ext/protoc/protobuf/src/google/protobuf/dynamic_message.h +148 -0
  329. data/ext/protoc/protobuf/src/google/protobuf/dynamic_message_unittest.cc +230 -0
  330. data/ext/protoc/protobuf/src/google/protobuf/extension_set.cc +1663 -0
  331. data/ext/protoc/protobuf/src/google/protobuf/extension_set.h +1234 -0
  332. data/ext/protoc/protobuf/src/google/protobuf/extension_set_heavy.cc +734 -0
  333. data/ext/protoc/protobuf/src/google/protobuf/extension_set_unittest.cc +1095 -0
  334. data/ext/protoc/protobuf/src/google/protobuf/generated_enum_reflection.h +91 -0
  335. data/ext/protoc/protobuf/src/google/protobuf/generated_message_reflection.cc +1683 -0
  336. data/ext/protoc/protobuf/src/google/protobuf/generated_message_reflection.h +504 -0
  337. data/ext/protoc/protobuf/src/google/protobuf/generated_message_reflection_unittest.cc +795 -0
  338. data/ext/protoc/protobuf/src/google/protobuf/generated_message_util.cc +65 -0
  339. data/ext/protoc/protobuf/src/google/protobuf/generated_message_util.h +113 -0
  340. data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream.cc +914 -0
  341. data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream.h +1220 -0
  342. data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream_inl.h +69 -0
  343. data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream_unittest.cc +1378 -0
  344. data/ext/protoc/protobuf/src/google/protobuf/io/gzip_stream.cc +326 -0
  345. data/ext/protoc/protobuf/src/google/protobuf/io/gzip_stream.h +209 -0
  346. data/ext/protoc/protobuf/src/google/protobuf/io/gzip_stream_unittest.sh +44 -0
  347. data/ext/protoc/protobuf/src/google/protobuf/io/package_info.h +54 -0
  348. data/ext/protoc/protobuf/src/google/protobuf/io/printer.cc +198 -0
  349. data/ext/protoc/protobuf/src/google/protobuf/io/printer.h +136 -0
  350. data/ext/protoc/protobuf/src/google/protobuf/io/printer_unittest.cc +285 -0
  351. data/ext/protoc/protobuf/src/google/protobuf/io/strtod.cc +113 -0
  352. data/ext/protoc/protobuf/src/google/protobuf/io/strtod.h +50 -0
  353. data/ext/protoc/protobuf/src/google/protobuf/io/tokenizer.cc +1127 -0
  354. data/ext/protoc/protobuf/src/google/protobuf/io/tokenizer.h +402 -0
  355. data/ext/protoc/protobuf/src/google/protobuf/io/tokenizer_unittest.cc +999 -0
  356. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream.cc +57 -0
  357. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream.h +248 -0
  358. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc +473 -0
  359. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h +358 -0
  360. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc +405 -0
  361. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h +354 -0
  362. data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_unittest.cc +965 -0
  363. data/ext/protoc/protobuf/src/google/protobuf/lite_unittest.cc +350 -0
  364. data/ext/protoc/protobuf/src/google/protobuf/message.cc +358 -0
  365. data/ext/protoc/protobuf/src/google/protobuf/message.h +866 -0
  366. data/ext/protoc/protobuf/src/google/protobuf/message_lite.cc +335 -0
  367. data/ext/protoc/protobuf/src/google/protobuf/message_lite.h +247 -0
  368. data/ext/protoc/protobuf/src/google/protobuf/message_unittest.cc +427 -0
  369. data/ext/protoc/protobuf/src/google/protobuf/package_info.h +64 -0
  370. data/ext/protoc/protobuf/src/google/protobuf/reflection_ops.cc +269 -0
  371. data/ext/protoc/protobuf/src/google/protobuf/reflection_ops.h +81 -0
  372. data/ext/protoc/protobuf/src/google/protobuf/reflection_ops_unittest.cc +475 -0
  373. data/ext/protoc/protobuf/src/google/protobuf/repeated_field.cc +87 -0
  374. data/ext/protoc/protobuf/src/google/protobuf/repeated_field.h +1603 -0
  375. data/ext/protoc/protobuf/src/google/protobuf/repeated_field_reflection_unittest.cc +195 -0
  376. data/ext/protoc/protobuf/src/google/protobuf/repeated_field_unittest.cc +1442 -0
  377. data/ext/protoc/protobuf/src/google/protobuf/service.cc +46 -0
  378. data/ext/protoc/protobuf/src/google/protobuf/service.h +291 -0
  379. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops.h +227 -0
  380. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_arm64_gcc.h +325 -0
  381. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h +151 -0
  382. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_qnx.h +146 -0
  383. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_atomicword_compat.h +122 -0
  384. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h +137 -0
  385. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_macosx.h +225 -0
  386. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_mips_gcc.h +313 -0
  387. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_pnacl.h +73 -0
  388. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h +188 -0
  389. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_tsan.h +219 -0
  390. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc +137 -0
  391. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_gcc.h +293 -0
  392. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc +112 -0
  393. data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_msvc.h +150 -0
  394. data/ext/protoc/protobuf/src/google/protobuf/stubs/common.cc +395 -0
  395. data/ext/protoc/protobuf/src/google/protobuf/stubs/common.h +1226 -0
  396. data/ext/protoc/protobuf/src/google/protobuf/stubs/common_unittest.cc +357 -0
  397. data/ext/protoc/protobuf/src/google/protobuf/stubs/hash.h +232 -0
  398. data/ext/protoc/protobuf/src/google/protobuf/stubs/map_util.h +771 -0
  399. data/ext/protoc/protobuf/src/google/protobuf/stubs/once.cc +99 -0
  400. data/ext/protoc/protobuf/src/google/protobuf/stubs/once.h +166 -0
  401. data/ext/protoc/protobuf/src/google/protobuf/stubs/once_unittest.cc +253 -0
  402. data/ext/protoc/protobuf/src/google/protobuf/stubs/platform_macros.h +103 -0
  403. data/ext/protoc/protobuf/src/google/protobuf/stubs/shared_ptr.h +470 -0
  404. data/ext/protoc/protobuf/src/google/protobuf/stubs/stl_util.h +121 -0
  405. data/ext/protoc/protobuf/src/google/protobuf/stubs/stringprintf.cc +175 -0
  406. data/ext/protoc/protobuf/src/google/protobuf/stubs/stringprintf.h +76 -0
  407. data/ext/protoc/protobuf/src/google/protobuf/stubs/stringprintf_unittest.cc +152 -0
  408. data/ext/protoc/protobuf/src/google/protobuf/stubs/structurally_valid.cc +536 -0
  409. data/ext/protoc/protobuf/src/google/protobuf/stubs/structurally_valid_unittest.cc +40 -0
  410. data/ext/protoc/protobuf/src/google/protobuf/stubs/strutil.cc +1279 -0
  411. data/ext/protoc/protobuf/src/google/protobuf/stubs/strutil.h +562 -0
  412. data/ext/protoc/protobuf/src/google/protobuf/stubs/strutil_unittest.cc +73 -0
  413. data/ext/protoc/protobuf/src/google/protobuf/stubs/substitute.cc +134 -0
  414. data/ext/protoc/protobuf/src/google/protobuf/stubs/substitute.h +170 -0
  415. data/ext/protoc/protobuf/src/google/protobuf/stubs/template_util.h +138 -0
  416. data/ext/protoc/protobuf/src/google/protobuf/stubs/template_util_unittest.cc +130 -0
  417. data/ext/protoc/protobuf/src/google/protobuf/stubs/type_traits.h +336 -0
  418. data/ext/protoc/protobuf/src/google/protobuf/stubs/type_traits_unittest.cc +628 -0
  419. data/ext/protoc/protobuf/src/google/protobuf/test_util.cc +3345 -0
  420. data/ext/protoc/protobuf/src/google/protobuf/test_util.h +215 -0
  421. data/ext/protoc/protobuf/src/google/protobuf/test_util_lite.cc +1585 -0
  422. data/ext/protoc/protobuf/src/google/protobuf/test_util_lite.h +101 -0
  423. data/ext/protoc/protobuf/src/google/protobuf/testdata/bad_utf8_string +1 -0
  424. data/ext/protoc/protobuf/src/google/protobuf/testdata/golden_message +0 -0
  425. data/ext/protoc/protobuf/src/google/protobuf/testdata/golden_message_oneof_implemented +0 -0
  426. data/ext/protoc/protobuf/src/google/protobuf/testdata/golden_packed_fields_message +0 -0
  427. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data.txt +134 -0
  428. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data_oneof_implemented.txt +129 -0
  429. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data_pointy.txt +134 -0
  430. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data_pointy_oneof.txt +129 -0
  431. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_extensions_data.txt +134 -0
  432. data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_extensions_data_pointy.txt +134 -0
  433. data/ext/protoc/protobuf/src/google/protobuf/testing/file.cc +194 -0
  434. data/ext/protoc/protobuf/src/google/protobuf/testing/file.h +97 -0
  435. data/ext/protoc/protobuf/src/google/protobuf/testing/googletest.cc +255 -0
  436. data/ext/protoc/protobuf/src/google/protobuf/testing/googletest.h +102 -0
  437. data/ext/protoc/protobuf/src/google/protobuf/testing/zcgunzip.cc +73 -0
  438. data/ext/protoc/protobuf/src/google/protobuf/testing/zcgzip.cc +79 -0
  439. data/ext/protoc/protobuf/src/google/protobuf/text_format.cc +1746 -0
  440. data/ext/protoc/protobuf/src/google/protobuf/text_format.h +473 -0
  441. data/ext/protoc/protobuf/src/google/protobuf/text_format_unittest.cc +1479 -0
  442. data/ext/protoc/protobuf/src/google/protobuf/unittest.proto +861 -0
  443. data/ext/protoc/protobuf/src/google/protobuf/unittest_custom_options.proto +393 -0
  444. data/ext/protoc/protobuf/src/google/protobuf/unittest_embed_optimize_for.proto +50 -0
  445. data/ext/protoc/protobuf/src/google/protobuf/unittest_empty.proto +37 -0
  446. data/ext/protoc/protobuf/src/google/protobuf/unittest_enormous_descriptor.proto +1046 -0
  447. data/ext/protoc/protobuf/src/google/protobuf/unittest_import.proto +64 -0
  448. data/ext/protoc/protobuf/src/google/protobuf/unittest_import_lite.proto +51 -0
  449. data/ext/protoc/protobuf/src/google/protobuf/unittest_import_public.proto +40 -0
  450. data/ext/protoc/protobuf/src/google/protobuf/unittest_import_public_lite.proto +42 -0
  451. data/ext/protoc/protobuf/src/google/protobuf/unittest_lite.proto +384 -0
  452. data/ext/protoc/protobuf/src/google/protobuf/unittest_lite_imports_nonlite.proto +43 -0
  453. data/ext/protoc/protobuf/src/google/protobuf/unittest_mset.proto +83 -0
  454. data/ext/protoc/protobuf/src/google/protobuf/unittest_no_generic_services.proto +53 -0
  455. data/ext/protoc/protobuf/src/google/protobuf/unittest_optimize_for.proto +66 -0
  456. data/ext/protoc/protobuf/src/google/protobuf/unknown_field_set.cc +265 -0
  457. data/ext/protoc/protobuf/src/google/protobuf/unknown_field_set.h +318 -0
  458. data/ext/protoc/protobuf/src/google/protobuf/unknown_field_set_unittest.cc +599 -0
  459. data/ext/protoc/protobuf/src/google/protobuf/wire_format.cc +1101 -0
  460. data/ext/protoc/protobuf/src/google/protobuf/wire_format.h +336 -0
  461. data/ext/protoc/protobuf/src/google/protobuf/wire_format_lite.cc +471 -0
  462. data/ext/protoc/protobuf/src/google/protobuf/wire_format_lite.h +661 -0
  463. data/ext/protoc/protobuf/src/google/protobuf/wire_format_lite_inl.h +860 -0
  464. data/ext/protoc/protobuf/src/google/protobuf/wire_format_unittest.cc +1120 -0
  465. data/ext/protoc/protobuf/src/solaris/libstdc++.la +51 -0
  466. data/ext/protoc/protobuf/vsprojects/config.h +29 -0
  467. data/ext/protoc/protobuf/vsprojects/convert2008to2005.sh +20 -0
  468. data/ext/protoc/protobuf/vsprojects/extract_includes.bat +50 -0
  469. data/ext/protoc/protobuf/vsprojects/libprotobuf-lite.vcproj +302 -0
  470. data/ext/protoc/protobuf/vsprojects/libprotobuf.vcproj +470 -0
  471. data/ext/protoc/protobuf/vsprojects/libprotoc.vcproj +466 -0
  472. data/ext/protoc/protobuf/vsprojects/lite-test.vcproj +305 -0
  473. data/ext/protoc/protobuf/vsprojects/protobuf.sln +92 -0
  474. data/ext/protoc/protobuf/vsprojects/protoc.vcproj +192 -0
  475. data/ext/protoc/protobuf/vsprojects/readme.txt +114 -0
  476. data/ext/protoc/protobuf/vsprojects/test_plugin.vcproj +209 -0
  477. data/ext/protoc/protobuf/vsprojects/tests.vcproj +681 -0
  478. data/lib/protoc/version.rb +1 -1
  479. metadata +480 -3
@@ -0,0 +1,788 @@
1
+ # Protocol Buffers - Google's data interchange format
2
+ # Copyright 2008 Google Inc. All rights reserved.
3
+ # https://developers.google.com/protocol-buffers/
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are
7
+ # met:
8
+ #
9
+ # * Redistributions of source code must retain the above copyright
10
+ # notice, this list of conditions and the following disclaimer.
11
+ # * Redistributions in binary form must reproduce the above
12
+ # copyright notice, this list of conditions and the following disclaimer
13
+ # in the documentation and/or other materials provided with the
14
+ # distribution.
15
+ # * Neither the name of Google Inc. nor the names of its
16
+ # contributors may be used to endorse or promote products derived from
17
+ # this software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23
+ # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24
+ # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+
31
+ #PY25 compatible for GAE.
32
+ #
33
+ # Copyright 2009 Google Inc. All Rights Reserved.
34
+
35
+ """Code for encoding protocol message primitives.
36
+
37
+ Contains the logic for encoding every logical protocol field type
38
+ into one of the 5 physical wire types.
39
+
40
+ This code is designed to push the Python interpreter's performance to the
41
+ limits.
42
+
43
+ The basic idea is that at startup time, for every field (i.e. every
44
+ FieldDescriptor) we construct two functions: a "sizer" and an "encoder". The
45
+ sizer takes a value of this field's type and computes its byte size. The
46
+ encoder takes a writer function and a value. It encodes the value into byte
47
+ strings and invokes the writer function to write those strings. Typically the
48
+ writer function is the write() method of a cStringIO.
49
+
50
+ We try to do as much work as possible when constructing the writer and the
51
+ sizer rather than when calling them. In particular:
52
+ * We copy any needed global functions to local variables, so that we do not need
53
+ to do costly global table lookups at runtime.
54
+ * Similarly, we try to do any attribute lookups at startup time if possible.
55
+ * Every field's tag is encoded to bytes at startup, since it can't change at
56
+ runtime.
57
+ * Whatever component of the field size we can compute at startup, we do.
58
+ * We *avoid* sharing code if doing so would make the code slower and not sharing
59
+ does not burden us too much. For example, encoders for repeated fields do
60
+ not just call the encoders for singular fields in a loop because this would
61
+ add an extra function call overhead for every loop iteration; instead, we
62
+ manually inline the single-value encoder into the loop.
63
+ * If a Python function lacks a return statement, Python actually generates
64
+ instructions to pop the result of the last statement off the stack, push
65
+ None onto the stack, and then return that. If we really don't care what
66
+ value is returned, then we can save two instructions by returning the
67
+ result of the last statement. It looks funny but it helps.
68
+ * We assume that type and bounds checking has happened at a higher level.
69
+ """
70
+
71
+ __author__ = 'kenton@google.com (Kenton Varda)'
72
+
73
+ import struct
74
+ import sys ##PY25
75
+ _PY2 = sys.version_info[0] < 3 ##PY25
76
+ from google.protobuf.internal import wire_format
77
+
78
+
79
+ # This will overflow and thus become IEEE-754 "infinity". We would use
80
+ # "float('inf')" but it doesn't work on Windows pre-Python-2.6.
81
+ _POS_INF = 1e10000
82
+ _NEG_INF = -_POS_INF
83
+
84
+
85
+ def _VarintSize(value):
86
+ """Compute the size of a varint value."""
87
+ if value <= 0x7f: return 1
88
+ if value <= 0x3fff: return 2
89
+ if value <= 0x1fffff: return 3
90
+ if value <= 0xfffffff: return 4
91
+ if value <= 0x7ffffffff: return 5
92
+ if value <= 0x3ffffffffff: return 6
93
+ if value <= 0x1ffffffffffff: return 7
94
+ if value <= 0xffffffffffffff: return 8
95
+ if value <= 0x7fffffffffffffff: return 9
96
+ return 10
97
+
98
+
99
+ def _SignedVarintSize(value):
100
+ """Compute the size of a signed varint value."""
101
+ if value < 0: return 10
102
+ if value <= 0x7f: return 1
103
+ if value <= 0x3fff: return 2
104
+ if value <= 0x1fffff: return 3
105
+ if value <= 0xfffffff: return 4
106
+ if value <= 0x7ffffffff: return 5
107
+ if value <= 0x3ffffffffff: return 6
108
+ if value <= 0x1ffffffffffff: return 7
109
+ if value <= 0xffffffffffffff: return 8
110
+ if value <= 0x7fffffffffffffff: return 9
111
+ return 10
112
+
113
+
114
+ def _TagSize(field_number):
115
+ """Returns the number of bytes required to serialize a tag with this field
116
+ number."""
117
+ # Just pass in type 0, since the type won't affect the tag+type size.
118
+ return _VarintSize(wire_format.PackTag(field_number, 0))
119
+
120
+
121
+ # --------------------------------------------------------------------
122
+ # In this section we define some generic sizers. Each of these functions
123
+ # takes parameters specific to a particular field type, e.g. int32 or fixed64.
124
+ # It returns another function which in turn takes parameters specific to a
125
+ # particular field, e.g. the field number and whether it is repeated or packed.
126
+ # Look at the next section to see how these are used.
127
+
128
+
129
+ def _SimpleSizer(compute_value_size):
130
+ """A sizer which uses the function compute_value_size to compute the size of
131
+ each value. Typically compute_value_size is _VarintSize."""
132
+
133
+ def SpecificSizer(field_number, is_repeated, is_packed):
134
+ tag_size = _TagSize(field_number)
135
+ if is_packed:
136
+ local_VarintSize = _VarintSize
137
+ def PackedFieldSize(value):
138
+ result = 0
139
+ for element in value:
140
+ result += compute_value_size(element)
141
+ return result + local_VarintSize(result) + tag_size
142
+ return PackedFieldSize
143
+ elif is_repeated:
144
+ def RepeatedFieldSize(value):
145
+ result = tag_size * len(value)
146
+ for element in value:
147
+ result += compute_value_size(element)
148
+ return result
149
+ return RepeatedFieldSize
150
+ else:
151
+ def FieldSize(value):
152
+ return tag_size + compute_value_size(value)
153
+ return FieldSize
154
+
155
+ return SpecificSizer
156
+
157
+
158
+ def _ModifiedSizer(compute_value_size, modify_value):
159
+ """Like SimpleSizer, but modify_value is invoked on each value before it is
160
+ passed to compute_value_size. modify_value is typically ZigZagEncode."""
161
+
162
+ def SpecificSizer(field_number, is_repeated, is_packed):
163
+ tag_size = _TagSize(field_number)
164
+ if is_packed:
165
+ local_VarintSize = _VarintSize
166
+ def PackedFieldSize(value):
167
+ result = 0
168
+ for element in value:
169
+ result += compute_value_size(modify_value(element))
170
+ return result + local_VarintSize(result) + tag_size
171
+ return PackedFieldSize
172
+ elif is_repeated:
173
+ def RepeatedFieldSize(value):
174
+ result = tag_size * len(value)
175
+ for element in value:
176
+ result += compute_value_size(modify_value(element))
177
+ return result
178
+ return RepeatedFieldSize
179
+ else:
180
+ def FieldSize(value):
181
+ return tag_size + compute_value_size(modify_value(value))
182
+ return FieldSize
183
+
184
+ return SpecificSizer
185
+
186
+
187
+ def _FixedSizer(value_size):
188
+ """Like _SimpleSizer except for a fixed-size field. The input is the size
189
+ of one value."""
190
+
191
+ def SpecificSizer(field_number, is_repeated, is_packed):
192
+ tag_size = _TagSize(field_number)
193
+ if is_packed:
194
+ local_VarintSize = _VarintSize
195
+ def PackedFieldSize(value):
196
+ result = len(value) * value_size
197
+ return result + local_VarintSize(result) + tag_size
198
+ return PackedFieldSize
199
+ elif is_repeated:
200
+ element_size = value_size + tag_size
201
+ def RepeatedFieldSize(value):
202
+ return len(value) * element_size
203
+ return RepeatedFieldSize
204
+ else:
205
+ field_size = value_size + tag_size
206
+ def FieldSize(value):
207
+ return field_size
208
+ return FieldSize
209
+
210
+ return SpecificSizer
211
+
212
+
213
+ # ====================================================================
214
+ # Here we declare a sizer constructor for each field type. Each "sizer
215
+ # constructor" is a function that takes (field_number, is_repeated, is_packed)
216
+ # as parameters and returns a sizer, which in turn takes a field value as
217
+ # a parameter and returns its encoded size.
218
+
219
+
220
+ Int32Sizer = Int64Sizer = EnumSizer = _SimpleSizer(_SignedVarintSize)
221
+
222
+ UInt32Sizer = UInt64Sizer = _SimpleSizer(_VarintSize)
223
+
224
+ SInt32Sizer = SInt64Sizer = _ModifiedSizer(
225
+ _SignedVarintSize, wire_format.ZigZagEncode)
226
+
227
+ Fixed32Sizer = SFixed32Sizer = FloatSizer = _FixedSizer(4)
228
+ Fixed64Sizer = SFixed64Sizer = DoubleSizer = _FixedSizer(8)
229
+
230
+ BoolSizer = _FixedSizer(1)
231
+
232
+
233
+ def StringSizer(field_number, is_repeated, is_packed):
234
+ """Returns a sizer for a string field."""
235
+
236
+ tag_size = _TagSize(field_number)
237
+ local_VarintSize = _VarintSize
238
+ local_len = len
239
+ assert not is_packed
240
+ if is_repeated:
241
+ def RepeatedFieldSize(value):
242
+ result = tag_size * len(value)
243
+ for element in value:
244
+ l = local_len(element.encode('utf-8'))
245
+ result += local_VarintSize(l) + l
246
+ return result
247
+ return RepeatedFieldSize
248
+ else:
249
+ def FieldSize(value):
250
+ l = local_len(value.encode('utf-8'))
251
+ return tag_size + local_VarintSize(l) + l
252
+ return FieldSize
253
+
254
+
255
+ def BytesSizer(field_number, is_repeated, is_packed):
256
+ """Returns a sizer for a bytes field."""
257
+
258
+ tag_size = _TagSize(field_number)
259
+ local_VarintSize = _VarintSize
260
+ local_len = len
261
+ assert not is_packed
262
+ if is_repeated:
263
+ def RepeatedFieldSize(value):
264
+ result = tag_size * len(value)
265
+ for element in value:
266
+ l = local_len(element)
267
+ result += local_VarintSize(l) + l
268
+ return result
269
+ return RepeatedFieldSize
270
+ else:
271
+ def FieldSize(value):
272
+ l = local_len(value)
273
+ return tag_size + local_VarintSize(l) + l
274
+ return FieldSize
275
+
276
+
277
+ def GroupSizer(field_number, is_repeated, is_packed):
278
+ """Returns a sizer for a group field."""
279
+
280
+ tag_size = _TagSize(field_number) * 2
281
+ assert not is_packed
282
+ if is_repeated:
283
+ def RepeatedFieldSize(value):
284
+ result = tag_size * len(value)
285
+ for element in value:
286
+ result += element.ByteSize()
287
+ return result
288
+ return RepeatedFieldSize
289
+ else:
290
+ def FieldSize(value):
291
+ return tag_size + value.ByteSize()
292
+ return FieldSize
293
+
294
+
295
+ def MessageSizer(field_number, is_repeated, is_packed):
296
+ """Returns a sizer for a message field."""
297
+
298
+ tag_size = _TagSize(field_number)
299
+ local_VarintSize = _VarintSize
300
+ assert not is_packed
301
+ if is_repeated:
302
+ def RepeatedFieldSize(value):
303
+ result = tag_size * len(value)
304
+ for element in value:
305
+ l = element.ByteSize()
306
+ result += local_VarintSize(l) + l
307
+ return result
308
+ return RepeatedFieldSize
309
+ else:
310
+ def FieldSize(value):
311
+ l = value.ByteSize()
312
+ return tag_size + local_VarintSize(l) + l
313
+ return FieldSize
314
+
315
+
316
+ # --------------------------------------------------------------------
317
+ # MessageSet is special.
318
+
319
+
320
+ def MessageSetItemSizer(field_number):
321
+ """Returns a sizer for extensions of MessageSet.
322
+
323
+ The message set message looks like this:
324
+ message MessageSet {
325
+ repeated group Item = 1 {
326
+ required int32 type_id = 2;
327
+ required string message = 3;
328
+ }
329
+ }
330
+ """
331
+ static_size = (_TagSize(1) * 2 + _TagSize(2) + _VarintSize(field_number) +
332
+ _TagSize(3))
333
+ local_VarintSize = _VarintSize
334
+
335
+ def FieldSize(value):
336
+ l = value.ByteSize()
337
+ return static_size + local_VarintSize(l) + l
338
+
339
+ return FieldSize
340
+
341
+
342
+ # ====================================================================
343
+ # Encoders!
344
+
345
+
346
+ def _VarintEncoder():
347
+ """Return an encoder for a basic varint value (does not include tag)."""
348
+
349
+ local_chr = _PY2 and chr or (lambda x: bytes((x,))) ##PY25
350
+ ##!PY25 local_chr = chr if bytes is str else lambda x: bytes((x,))
351
+ def EncodeVarint(write, value):
352
+ bits = value & 0x7f
353
+ value >>= 7
354
+ while value:
355
+ write(local_chr(0x80|bits))
356
+ bits = value & 0x7f
357
+ value >>= 7
358
+ return write(local_chr(bits))
359
+
360
+ return EncodeVarint
361
+
362
+
363
+ def _SignedVarintEncoder():
364
+ """Return an encoder for a basic signed varint value (does not include
365
+ tag)."""
366
+
367
+ local_chr = _PY2 and chr or (lambda x: bytes((x,))) ##PY25
368
+ ##!PY25 local_chr = chr if bytes is str else lambda x: bytes((x,))
369
+ def EncodeSignedVarint(write, value):
370
+ if value < 0:
371
+ value += (1 << 64)
372
+ bits = value & 0x7f
373
+ value >>= 7
374
+ while value:
375
+ write(local_chr(0x80|bits))
376
+ bits = value & 0x7f
377
+ value >>= 7
378
+ return write(local_chr(bits))
379
+
380
+ return EncodeSignedVarint
381
+
382
+
383
+ _EncodeVarint = _VarintEncoder()
384
+ _EncodeSignedVarint = _SignedVarintEncoder()
385
+
386
+
387
+ def _VarintBytes(value):
388
+ """Encode the given integer as a varint and return the bytes. This is only
389
+ called at startup time so it doesn't need to be fast."""
390
+
391
+ pieces = []
392
+ _EncodeVarint(pieces.append, value)
393
+ return "".encode("latin1").join(pieces) ##PY25
394
+ ##!PY25 return b"".join(pieces)
395
+
396
+
397
+ def TagBytes(field_number, wire_type):
398
+ """Encode the given tag and return the bytes. Only called at startup."""
399
+
400
+ return _VarintBytes(wire_format.PackTag(field_number, wire_type))
401
+
402
+ # --------------------------------------------------------------------
403
+ # As with sizers (see above), we have a number of common encoder
404
+ # implementations.
405
+
406
+
407
+ def _SimpleEncoder(wire_type, encode_value, compute_value_size):
408
+ """Return a constructor for an encoder for fields of a particular type.
409
+
410
+ Args:
411
+ wire_type: The field's wire type, for encoding tags.
412
+ encode_value: A function which encodes an individual value, e.g.
413
+ _EncodeVarint().
414
+ compute_value_size: A function which computes the size of an individual
415
+ value, e.g. _VarintSize().
416
+ """
417
+
418
+ def SpecificEncoder(field_number, is_repeated, is_packed):
419
+ if is_packed:
420
+ tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
421
+ local_EncodeVarint = _EncodeVarint
422
+ def EncodePackedField(write, value):
423
+ write(tag_bytes)
424
+ size = 0
425
+ for element in value:
426
+ size += compute_value_size(element)
427
+ local_EncodeVarint(write, size)
428
+ for element in value:
429
+ encode_value(write, element)
430
+ return EncodePackedField
431
+ elif is_repeated:
432
+ tag_bytes = TagBytes(field_number, wire_type)
433
+ def EncodeRepeatedField(write, value):
434
+ for element in value:
435
+ write(tag_bytes)
436
+ encode_value(write, element)
437
+ return EncodeRepeatedField
438
+ else:
439
+ tag_bytes = TagBytes(field_number, wire_type)
440
+ def EncodeField(write, value):
441
+ write(tag_bytes)
442
+ return encode_value(write, value)
443
+ return EncodeField
444
+
445
+ return SpecificEncoder
446
+
447
+
448
+ def _ModifiedEncoder(wire_type, encode_value, compute_value_size, modify_value):
449
+ """Like SimpleEncoder but additionally invokes modify_value on every value
450
+ before passing it to encode_value. Usually modify_value is ZigZagEncode."""
451
+
452
+ def SpecificEncoder(field_number, is_repeated, is_packed):
453
+ if is_packed:
454
+ tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
455
+ local_EncodeVarint = _EncodeVarint
456
+ def EncodePackedField(write, value):
457
+ write(tag_bytes)
458
+ size = 0
459
+ for element in value:
460
+ size += compute_value_size(modify_value(element))
461
+ local_EncodeVarint(write, size)
462
+ for element in value:
463
+ encode_value(write, modify_value(element))
464
+ return EncodePackedField
465
+ elif is_repeated:
466
+ tag_bytes = TagBytes(field_number, wire_type)
467
+ def EncodeRepeatedField(write, value):
468
+ for element in value:
469
+ write(tag_bytes)
470
+ encode_value(write, modify_value(element))
471
+ return EncodeRepeatedField
472
+ else:
473
+ tag_bytes = TagBytes(field_number, wire_type)
474
+ def EncodeField(write, value):
475
+ write(tag_bytes)
476
+ return encode_value(write, modify_value(value))
477
+ return EncodeField
478
+
479
+ return SpecificEncoder
480
+
481
+
482
+ def _StructPackEncoder(wire_type, format):
483
+ """Return a constructor for an encoder for a fixed-width field.
484
+
485
+ Args:
486
+ wire_type: The field's wire type, for encoding tags.
487
+ format: The format string to pass to struct.pack().
488
+ """
489
+
490
+ value_size = struct.calcsize(format)
491
+
492
+ def SpecificEncoder(field_number, is_repeated, is_packed):
493
+ local_struct_pack = struct.pack
494
+ if is_packed:
495
+ tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
496
+ local_EncodeVarint = _EncodeVarint
497
+ def EncodePackedField(write, value):
498
+ write(tag_bytes)
499
+ local_EncodeVarint(write, len(value) * value_size)
500
+ for element in value:
501
+ write(local_struct_pack(format, element))
502
+ return EncodePackedField
503
+ elif is_repeated:
504
+ tag_bytes = TagBytes(field_number, wire_type)
505
+ def EncodeRepeatedField(write, value):
506
+ for element in value:
507
+ write(tag_bytes)
508
+ write(local_struct_pack(format, element))
509
+ return EncodeRepeatedField
510
+ else:
511
+ tag_bytes = TagBytes(field_number, wire_type)
512
+ def EncodeField(write, value):
513
+ write(tag_bytes)
514
+ return write(local_struct_pack(format, value))
515
+ return EncodeField
516
+
517
+ return SpecificEncoder
518
+
519
+
520
+ def _FloatingPointEncoder(wire_type, format):
521
+ """Return a constructor for an encoder for float fields.
522
+
523
+ This is like StructPackEncoder, but catches errors that may be due to
524
+ passing non-finite floating-point values to struct.pack, and makes a
525
+ second attempt to encode those values.
526
+
527
+ Args:
528
+ wire_type: The field's wire type, for encoding tags.
529
+ format: The format string to pass to struct.pack().
530
+ """
531
+
532
+ b = _PY2 and (lambda x:x) or (lambda x:x.encode('latin1')) ##PY25
533
+ value_size = struct.calcsize(format)
534
+ if value_size == 4:
535
+ def EncodeNonFiniteOrRaise(write, value):
536
+ # Remember that the serialized form uses little-endian byte order.
537
+ if value == _POS_INF:
538
+ write(b('\x00\x00\x80\x7F')) ##PY25
539
+ ##!PY25 write(b'\x00\x00\x80\x7F')
540
+ elif value == _NEG_INF:
541
+ write(b('\x00\x00\x80\xFF')) ##PY25
542
+ ##!PY25 write(b'\x00\x00\x80\xFF')
543
+ elif value != value: # NaN
544
+ write(b('\x00\x00\xC0\x7F')) ##PY25
545
+ ##!PY25 write(b'\x00\x00\xC0\x7F')
546
+ else:
547
+ raise
548
+ elif value_size == 8:
549
+ def EncodeNonFiniteOrRaise(write, value):
550
+ if value == _POS_INF:
551
+ write(b('\x00\x00\x00\x00\x00\x00\xF0\x7F')) ##PY25
552
+ ##!PY25 write(b'\x00\x00\x00\x00\x00\x00\xF0\x7F')
553
+ elif value == _NEG_INF:
554
+ write(b('\x00\x00\x00\x00\x00\x00\xF0\xFF')) ##PY25
555
+ ##!PY25 write(b'\x00\x00\x00\x00\x00\x00\xF0\xFF')
556
+ elif value != value: # NaN
557
+ write(b('\x00\x00\x00\x00\x00\x00\xF8\x7F')) ##PY25
558
+ ##!PY25 write(b'\x00\x00\x00\x00\x00\x00\xF8\x7F')
559
+ else:
560
+ raise
561
+ else:
562
+ raise ValueError('Can\'t encode floating-point values that are '
563
+ '%d bytes long (only 4 or 8)' % value_size)
564
+
565
+ def SpecificEncoder(field_number, is_repeated, is_packed):
566
+ local_struct_pack = struct.pack
567
+ if is_packed:
568
+ tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
569
+ local_EncodeVarint = _EncodeVarint
570
+ def EncodePackedField(write, value):
571
+ write(tag_bytes)
572
+ local_EncodeVarint(write, len(value) * value_size)
573
+ for element in value:
574
+ # This try/except block is going to be faster than any code that
575
+ # we could write to check whether element is finite.
576
+ try:
577
+ write(local_struct_pack(format, element))
578
+ except SystemError:
579
+ EncodeNonFiniteOrRaise(write, element)
580
+ return EncodePackedField
581
+ elif is_repeated:
582
+ tag_bytes = TagBytes(field_number, wire_type)
583
+ def EncodeRepeatedField(write, value):
584
+ for element in value:
585
+ write(tag_bytes)
586
+ try:
587
+ write(local_struct_pack(format, element))
588
+ except SystemError:
589
+ EncodeNonFiniteOrRaise(write, element)
590
+ return EncodeRepeatedField
591
+ else:
592
+ tag_bytes = TagBytes(field_number, wire_type)
593
+ def EncodeField(write, value):
594
+ write(tag_bytes)
595
+ try:
596
+ write(local_struct_pack(format, value))
597
+ except SystemError:
598
+ EncodeNonFiniteOrRaise(write, value)
599
+ return EncodeField
600
+
601
+ return SpecificEncoder
602
+
603
+
604
+ # ====================================================================
605
+ # Here we declare an encoder constructor for each field type. These work
606
+ # very similarly to sizer constructors, described earlier.
607
+
608
+
609
+ Int32Encoder = Int64Encoder = EnumEncoder = _SimpleEncoder(
610
+ wire_format.WIRETYPE_VARINT, _EncodeSignedVarint, _SignedVarintSize)
611
+
612
+ UInt32Encoder = UInt64Encoder = _SimpleEncoder(
613
+ wire_format.WIRETYPE_VARINT, _EncodeVarint, _VarintSize)
614
+
615
+ SInt32Encoder = SInt64Encoder = _ModifiedEncoder(
616
+ wire_format.WIRETYPE_VARINT, _EncodeVarint, _VarintSize,
617
+ wire_format.ZigZagEncode)
618
+
619
+ # Note that Python conveniently guarantees that when using the '<' prefix on
620
+ # formats, they will also have the same size across all platforms (as opposed
621
+ # to without the prefix, where their sizes depend on the C compiler's basic
622
+ # type sizes).
623
+ Fixed32Encoder = _StructPackEncoder(wire_format.WIRETYPE_FIXED32, '<I')
624
+ Fixed64Encoder = _StructPackEncoder(wire_format.WIRETYPE_FIXED64, '<Q')
625
+ SFixed32Encoder = _StructPackEncoder(wire_format.WIRETYPE_FIXED32, '<i')
626
+ SFixed64Encoder = _StructPackEncoder(wire_format.WIRETYPE_FIXED64, '<q')
627
+ FloatEncoder = _FloatingPointEncoder(wire_format.WIRETYPE_FIXED32, '<f')
628
+ DoubleEncoder = _FloatingPointEncoder(wire_format.WIRETYPE_FIXED64, '<d')
629
+
630
+
631
+ def BoolEncoder(field_number, is_repeated, is_packed):
632
+ """Returns an encoder for a boolean field."""
633
+
634
+ ##!PY25 false_byte = b'\x00'
635
+ ##!PY25 true_byte = b'\x01'
636
+ false_byte = '\x00'.encode('latin1') ##PY25
637
+ true_byte = '\x01'.encode('latin1') ##PY25
638
+ if is_packed:
639
+ tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
640
+ local_EncodeVarint = _EncodeVarint
641
+ def EncodePackedField(write, value):
642
+ write(tag_bytes)
643
+ local_EncodeVarint(write, len(value))
644
+ for element in value:
645
+ if element:
646
+ write(true_byte)
647
+ else:
648
+ write(false_byte)
649
+ return EncodePackedField
650
+ elif is_repeated:
651
+ tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_VARINT)
652
+ def EncodeRepeatedField(write, value):
653
+ for element in value:
654
+ write(tag_bytes)
655
+ if element:
656
+ write(true_byte)
657
+ else:
658
+ write(false_byte)
659
+ return EncodeRepeatedField
660
+ else:
661
+ tag_bytes = TagBytes(field_number, wire_format.WIRETYPE_VARINT)
662
+ def EncodeField(write, value):
663
+ write(tag_bytes)
664
+ if value:
665
+ return write(true_byte)
666
+ return write(false_byte)
667
+ return EncodeField
668
+
669
+
670
+ def StringEncoder(field_number, is_repeated, is_packed):
671
+ """Returns an encoder for a string field."""
672
+
673
+ tag = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
674
+ local_EncodeVarint = _EncodeVarint
675
+ local_len = len
676
+ assert not is_packed
677
+ if is_repeated:
678
+ def EncodeRepeatedField(write, value):
679
+ for element in value:
680
+ encoded = element.encode('utf-8')
681
+ write(tag)
682
+ local_EncodeVarint(write, local_len(encoded))
683
+ write(encoded)
684
+ return EncodeRepeatedField
685
+ else:
686
+ def EncodeField(write, value):
687
+ encoded = value.encode('utf-8')
688
+ write(tag)
689
+ local_EncodeVarint(write, local_len(encoded))
690
+ return write(encoded)
691
+ return EncodeField
692
+
693
+
694
+ def BytesEncoder(field_number, is_repeated, is_packed):
695
+ """Returns an encoder for a bytes field."""
696
+
697
+ tag = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
698
+ local_EncodeVarint = _EncodeVarint
699
+ local_len = len
700
+ assert not is_packed
701
+ if is_repeated:
702
+ def EncodeRepeatedField(write, value):
703
+ for element in value:
704
+ write(tag)
705
+ local_EncodeVarint(write, local_len(element))
706
+ write(element)
707
+ return EncodeRepeatedField
708
+ else:
709
+ def EncodeField(write, value):
710
+ write(tag)
711
+ local_EncodeVarint(write, local_len(value))
712
+ return write(value)
713
+ return EncodeField
714
+
715
+
716
+ def GroupEncoder(field_number, is_repeated, is_packed):
717
+ """Returns an encoder for a group field."""
718
+
719
+ start_tag = TagBytes(field_number, wire_format.WIRETYPE_START_GROUP)
720
+ end_tag = TagBytes(field_number, wire_format.WIRETYPE_END_GROUP)
721
+ assert not is_packed
722
+ if is_repeated:
723
+ def EncodeRepeatedField(write, value):
724
+ for element in value:
725
+ write(start_tag)
726
+ element._InternalSerialize(write)
727
+ write(end_tag)
728
+ return EncodeRepeatedField
729
+ else:
730
+ def EncodeField(write, value):
731
+ write(start_tag)
732
+ value._InternalSerialize(write)
733
+ return write(end_tag)
734
+ return EncodeField
735
+
736
+
737
+ def MessageEncoder(field_number, is_repeated, is_packed):
738
+ """Returns an encoder for a message field."""
739
+
740
+ tag = TagBytes(field_number, wire_format.WIRETYPE_LENGTH_DELIMITED)
741
+ local_EncodeVarint = _EncodeVarint
742
+ assert not is_packed
743
+ if is_repeated:
744
+ def EncodeRepeatedField(write, value):
745
+ for element in value:
746
+ write(tag)
747
+ local_EncodeVarint(write, element.ByteSize())
748
+ element._InternalSerialize(write)
749
+ return EncodeRepeatedField
750
+ else:
751
+ def EncodeField(write, value):
752
+ write(tag)
753
+ local_EncodeVarint(write, value.ByteSize())
754
+ return value._InternalSerialize(write)
755
+ return EncodeField
756
+
757
+
758
+ # --------------------------------------------------------------------
759
+ # As before, MessageSet is special.
760
+
761
+
762
+ def MessageSetItemEncoder(field_number):
763
+ """Encoder for extensions of MessageSet.
764
+
765
+ The message set message looks like this:
766
+ message MessageSet {
767
+ repeated group Item = 1 {
768
+ required int32 type_id = 2;
769
+ required string message = 3;
770
+ }
771
+ }
772
+ """
773
+ start_bytes = "".encode("latin1").join([ ##PY25
774
+ ##!PY25 start_bytes = b"".join([
775
+ TagBytes(1, wire_format.WIRETYPE_START_GROUP),
776
+ TagBytes(2, wire_format.WIRETYPE_VARINT),
777
+ _VarintBytes(field_number),
778
+ TagBytes(3, wire_format.WIRETYPE_LENGTH_DELIMITED)])
779
+ end_bytes = TagBytes(1, wire_format.WIRETYPE_END_GROUP)
780
+ local_EncodeVarint = _EncodeVarint
781
+
782
+ def EncodeField(write, value):
783
+ write(start_bytes)
784
+ local_EncodeVarint(write, value.ByteSize())
785
+ value._InternalSerialize(write)
786
+ return write(end_bytes)
787
+
788
+ return EncodeField