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,269 @@
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
+ // Author: kenton@google.com (Kenton Varda)
32
+ // Based on original Protocol Buffers design by
33
+ // Sanjay Ghemawat, Jeff Dean, and others.
34
+
35
+ #include <string>
36
+ #include <vector>
37
+
38
+ #include <google/protobuf/reflection_ops.h>
39
+ #include <google/protobuf/descriptor.h>
40
+ #include <google/protobuf/descriptor.pb.h>
41
+ #include <google/protobuf/unknown_field_set.h>
42
+ #include <google/protobuf/stubs/strutil.h>
43
+
44
+ namespace google {
45
+ namespace protobuf {
46
+ namespace internal {
47
+
48
+ void ReflectionOps::Copy(const Message& from, Message* to) {
49
+ if (&from == to) return;
50
+ Clear(to);
51
+ Merge(from, to);
52
+ }
53
+
54
+ void ReflectionOps::Merge(const Message& from, Message* to) {
55
+ GOOGLE_CHECK_NE(&from, to);
56
+
57
+ const Descriptor* descriptor = from.GetDescriptor();
58
+ GOOGLE_CHECK_EQ(to->GetDescriptor(), descriptor)
59
+ << "Tried to merge messages of different types "
60
+ << "(merge " << descriptor->full_name()
61
+ << " to " << to->GetDescriptor()->full_name() << ")";
62
+
63
+ const Reflection* from_reflection = from.GetReflection();
64
+ const Reflection* to_reflection = to->GetReflection();
65
+
66
+ vector<const FieldDescriptor*> fields;
67
+ from_reflection->ListFields(from, &fields);
68
+ for (int i = 0; i < fields.size(); i++) {
69
+ const FieldDescriptor* field = fields[i];
70
+
71
+ if (field->is_repeated()) {
72
+ int count = from_reflection->FieldSize(from, field);
73
+ for (int j = 0; j < count; j++) {
74
+ switch (field->cpp_type()) {
75
+ #define HANDLE_TYPE(CPPTYPE, METHOD) \
76
+ case FieldDescriptor::CPPTYPE_##CPPTYPE: \
77
+ to_reflection->Add##METHOD(to, field, \
78
+ from_reflection->GetRepeated##METHOD(from, field, j)); \
79
+ break;
80
+
81
+ HANDLE_TYPE(INT32 , Int32 );
82
+ HANDLE_TYPE(INT64 , Int64 );
83
+ HANDLE_TYPE(UINT32, UInt32);
84
+ HANDLE_TYPE(UINT64, UInt64);
85
+ HANDLE_TYPE(FLOAT , Float );
86
+ HANDLE_TYPE(DOUBLE, Double);
87
+ HANDLE_TYPE(BOOL , Bool );
88
+ HANDLE_TYPE(STRING, String);
89
+ HANDLE_TYPE(ENUM , Enum );
90
+ #undef HANDLE_TYPE
91
+
92
+ case FieldDescriptor::CPPTYPE_MESSAGE:
93
+ to_reflection->AddMessage(to, field)->MergeFrom(
94
+ from_reflection->GetRepeatedMessage(from, field, j));
95
+ break;
96
+ }
97
+ }
98
+ } else {
99
+ switch (field->cpp_type()) {
100
+ #define HANDLE_TYPE(CPPTYPE, METHOD) \
101
+ case FieldDescriptor::CPPTYPE_##CPPTYPE: \
102
+ to_reflection->Set##METHOD(to, field, \
103
+ from_reflection->Get##METHOD(from, field)); \
104
+ break;
105
+
106
+ HANDLE_TYPE(INT32 , Int32 );
107
+ HANDLE_TYPE(INT64 , Int64 );
108
+ HANDLE_TYPE(UINT32, UInt32);
109
+ HANDLE_TYPE(UINT64, UInt64);
110
+ HANDLE_TYPE(FLOAT , Float );
111
+ HANDLE_TYPE(DOUBLE, Double);
112
+ HANDLE_TYPE(BOOL , Bool );
113
+ HANDLE_TYPE(STRING, String);
114
+ HANDLE_TYPE(ENUM , Enum );
115
+ #undef HANDLE_TYPE
116
+
117
+ case FieldDescriptor::CPPTYPE_MESSAGE:
118
+ to_reflection->MutableMessage(to, field)->MergeFrom(
119
+ from_reflection->GetMessage(from, field));
120
+ break;
121
+ }
122
+ }
123
+ }
124
+
125
+ to_reflection->MutableUnknownFields(to)->MergeFrom(
126
+ from_reflection->GetUnknownFields(from));
127
+ }
128
+
129
+ void ReflectionOps::Clear(Message* message) {
130
+ const Reflection* reflection = message->GetReflection();
131
+
132
+ vector<const FieldDescriptor*> fields;
133
+ reflection->ListFields(*message, &fields);
134
+ for (int i = 0; i < fields.size(); i++) {
135
+ reflection->ClearField(message, fields[i]);
136
+ }
137
+
138
+ reflection->MutableUnknownFields(message)->Clear();
139
+ }
140
+
141
+ bool ReflectionOps::IsInitialized(const Message& message) {
142
+ const Descriptor* descriptor = message.GetDescriptor();
143
+ const Reflection* reflection = message.GetReflection();
144
+
145
+ // Check required fields of this message.
146
+ for (int i = 0; i < descriptor->field_count(); i++) {
147
+ if (descriptor->field(i)->is_required()) {
148
+ if (!reflection->HasField(message, descriptor->field(i))) {
149
+ return false;
150
+ }
151
+ }
152
+ }
153
+
154
+ // Check that sub-messages are initialized.
155
+ vector<const FieldDescriptor*> fields;
156
+ reflection->ListFields(message, &fields);
157
+ for (int i = 0; i < fields.size(); i++) {
158
+ const FieldDescriptor* field = fields[i];
159
+ if (field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
160
+
161
+ if (field->is_repeated()) {
162
+ int size = reflection->FieldSize(message, field);
163
+
164
+ for (int j = 0; j < size; j++) {
165
+ if (!reflection->GetRepeatedMessage(message, field, j)
166
+ .IsInitialized()) {
167
+ return false;
168
+ }
169
+ }
170
+ } else {
171
+ if (!reflection->GetMessage(message, field).IsInitialized()) {
172
+ return false;
173
+ }
174
+ }
175
+ }
176
+ }
177
+
178
+ return true;
179
+ }
180
+
181
+ void ReflectionOps::DiscardUnknownFields(Message* message) {
182
+ const Reflection* reflection = message->GetReflection();
183
+
184
+ reflection->MutableUnknownFields(message)->Clear();
185
+
186
+ vector<const FieldDescriptor*> fields;
187
+ reflection->ListFields(*message, &fields);
188
+ for (int i = 0; i < fields.size(); i++) {
189
+ const FieldDescriptor* field = fields[i];
190
+ if (field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
191
+ if (field->is_repeated()) {
192
+ int size = reflection->FieldSize(*message, field);
193
+ for (int j = 0; j < size; j++) {
194
+ reflection->MutableRepeatedMessage(message, field, j)
195
+ ->DiscardUnknownFields();
196
+ }
197
+ } else {
198
+ reflection->MutableMessage(message, field)->DiscardUnknownFields();
199
+ }
200
+ }
201
+ }
202
+ }
203
+
204
+ static string SubMessagePrefix(const string& prefix,
205
+ const FieldDescriptor* field,
206
+ int index) {
207
+ string result(prefix);
208
+ if (field->is_extension()) {
209
+ result.append("(");
210
+ result.append(field->full_name());
211
+ result.append(")");
212
+ } else {
213
+ result.append(field->name());
214
+ }
215
+ if (index != -1) {
216
+ result.append("[");
217
+ result.append(SimpleItoa(index));
218
+ result.append("]");
219
+ }
220
+ result.append(".");
221
+ return result;
222
+ }
223
+
224
+ void ReflectionOps::FindInitializationErrors(
225
+ const Message& message,
226
+ const string& prefix,
227
+ vector<string>* errors) {
228
+ const Descriptor* descriptor = message.GetDescriptor();
229
+ const Reflection* reflection = message.GetReflection();
230
+
231
+ // Check required fields of this message.
232
+ for (int i = 0; i < descriptor->field_count(); i++) {
233
+ if (descriptor->field(i)->is_required()) {
234
+ if (!reflection->HasField(message, descriptor->field(i))) {
235
+ errors->push_back(prefix + descriptor->field(i)->name());
236
+ }
237
+ }
238
+ }
239
+
240
+ // Check sub-messages.
241
+ vector<const FieldDescriptor*> fields;
242
+ reflection->ListFields(message, &fields);
243
+ for (int i = 0; i < fields.size(); i++) {
244
+ const FieldDescriptor* field = fields[i];
245
+ if (field->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE) {
246
+
247
+ if (field->is_repeated()) {
248
+ int size = reflection->FieldSize(message, field);
249
+
250
+ for (int j = 0; j < size; j++) {
251
+ const Message& sub_message =
252
+ reflection->GetRepeatedMessage(message, field, j);
253
+ FindInitializationErrors(sub_message,
254
+ SubMessagePrefix(prefix, field, j),
255
+ errors);
256
+ }
257
+ } else {
258
+ const Message& sub_message = reflection->GetMessage(message, field);
259
+ FindInitializationErrors(sub_message,
260
+ SubMessagePrefix(prefix, field, -1),
261
+ errors);
262
+ }
263
+ }
264
+ }
265
+ }
266
+
267
+ } // namespace internal
268
+ } // namespace protobuf
269
+ } // namespace google
@@ -0,0 +1,81 @@
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
+ // Author: kenton@google.com (Kenton Varda)
32
+ // Based on original Protocol Buffers design by
33
+ // Sanjay Ghemawat, Jeff Dean, and others.
34
+ //
35
+ // This header is logically internal, but is made public because it is used
36
+ // from protocol-compiler-generated code, which may reside in other components.
37
+
38
+ #ifndef GOOGLE_PROTOBUF_REFLECTION_OPS_H__
39
+ #define GOOGLE_PROTOBUF_REFLECTION_OPS_H__
40
+
41
+ #include <google/protobuf/stubs/common.h>
42
+ #include <google/protobuf/message.h>
43
+
44
+ namespace google {
45
+ namespace protobuf {
46
+ namespace internal {
47
+
48
+ // Basic operations that can be performed using reflection.
49
+ // These can be used as a cheap way to implement the corresponding
50
+ // methods of the Message interface, though they are likely to be
51
+ // slower than implementations tailored for the specific message type.
52
+ //
53
+ // This class should stay limited to operations needed to implement
54
+ // the Message interface.
55
+ //
56
+ // This class is really a namespace that contains only static methods.
57
+ class LIBPROTOBUF_EXPORT ReflectionOps {
58
+ public:
59
+ static void Copy(const Message& from, Message* to);
60
+ static void Merge(const Message& from, Message* to);
61
+ static void Clear(Message* message);
62
+ static bool IsInitialized(const Message& message);
63
+ static void DiscardUnknownFields(Message* message);
64
+
65
+ // Finds all unset required fields in the message and adds their full
66
+ // paths (e.g. "foo.bar[5].baz") to *names. "prefix" will be attached to
67
+ // the front of each name.
68
+ static void FindInitializationErrors(const Message& message,
69
+ const string& prefix,
70
+ vector<string>* errors);
71
+
72
+ private:
73
+ // All methods are static. No need to construct.
74
+ GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ReflectionOps);
75
+ };
76
+
77
+ } // namespace internal
78
+ } // namespace protobuf
79
+
80
+ } // namespace google
81
+ #endif // GOOGLE_PROTOBUF_REFLECTION_OPS_H__
@@ -0,0 +1,475 @@
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
+ // Author: kenton@google.com (Kenton Varda)
32
+ // Based on original Protocol Buffers design by
33
+ // Sanjay Ghemawat, Jeff Dean, and others.
34
+
35
+ #include <google/protobuf/reflection_ops.h>
36
+ #include <google/protobuf/descriptor.h>
37
+ #include <google/protobuf/unittest.pb.h>
38
+ #include <google/protobuf/test_util.h>
39
+
40
+ #include <google/protobuf/stubs/common.h>
41
+ #include <google/protobuf/testing/googletest.h>
42
+ #include <gtest/gtest.h>
43
+ #include <google/protobuf/stubs/strutil.h>
44
+
45
+ namespace google {
46
+ namespace protobuf {
47
+ namespace internal {
48
+ namespace {
49
+
50
+ TEST(ReflectionOpsTest, SanityCheck) {
51
+ unittest::TestAllTypes message;
52
+
53
+ TestUtil::SetAllFields(&message);
54
+ TestUtil::ExpectAllFieldsSet(message);
55
+ }
56
+
57
+ TEST(ReflectionOpsTest, Copy) {
58
+ unittest::TestAllTypes message, message2;
59
+
60
+ TestUtil::SetAllFields(&message);
61
+
62
+ ReflectionOps::Copy(message, &message2);
63
+
64
+ TestUtil::ExpectAllFieldsSet(message2);
65
+
66
+ // Copying from self should be a no-op.
67
+ ReflectionOps::Copy(message2, &message2);
68
+ TestUtil::ExpectAllFieldsSet(message2);
69
+ }
70
+
71
+ TEST(ReflectionOpsTest, CopyExtensions) {
72
+ unittest::TestAllExtensions message, message2;
73
+
74
+ TestUtil::SetAllExtensions(&message);
75
+
76
+ ReflectionOps::Copy(message, &message2);
77
+
78
+ TestUtil::ExpectAllExtensionsSet(message2);
79
+ }
80
+
81
+ TEST(ReflectionOpsTest, CopyOneof) {
82
+ unittest::TestOneof2 message, message2;
83
+ TestUtil::SetOneof1(&message);
84
+ ReflectionOps::Copy(message, &message2);
85
+ TestUtil::ExpectOneofSet1(message2);
86
+
87
+ TestUtil::SetOneof2(&message);
88
+ TestUtil::ExpectOneofSet2(message);
89
+ ReflectionOps::Copy(message, &message2);
90
+ TestUtil::ExpectOneofSet2(message2);
91
+ }
92
+
93
+ TEST(ReflectionOpsTest, Merge) {
94
+ // Note: Copy is implemented in terms of Merge() so technically the Copy
95
+ // test already tested most of this.
96
+
97
+ unittest::TestAllTypes message, message2;
98
+
99
+ TestUtil::SetAllFields(&message);
100
+
101
+ // This field will test merging into an empty spot.
102
+ message2.set_optional_int32(message.optional_int32());
103
+ message.clear_optional_int32();
104
+
105
+ // This tests overwriting.
106
+ message2.set_optional_string(message.optional_string());
107
+ message.set_optional_string("something else");
108
+
109
+ // This tests concatenating.
110
+ message2.add_repeated_int32(message.repeated_int32(1));
111
+ int32 i = message.repeated_int32(0);
112
+ message.clear_repeated_int32();
113
+ message.add_repeated_int32(i);
114
+
115
+ ReflectionOps::Merge(message2, &message);
116
+
117
+ TestUtil::ExpectAllFieldsSet(message);
118
+ }
119
+
120
+ TEST(ReflectionOpsTest, MergeExtensions) {
121
+ // Note: Copy is implemented in terms of Merge() so technically the Copy
122
+ // test already tested most of this.
123
+
124
+ unittest::TestAllExtensions message, message2;
125
+
126
+ TestUtil::SetAllExtensions(&message);
127
+
128
+ // This field will test merging into an empty spot.
129
+ message2.SetExtension(unittest::optional_int32_extension,
130
+ message.GetExtension(unittest::optional_int32_extension));
131
+ message.ClearExtension(unittest::optional_int32_extension);
132
+
133
+ // This tests overwriting.
134
+ message2.SetExtension(unittest::optional_string_extension,
135
+ message.GetExtension(unittest::optional_string_extension));
136
+ message.SetExtension(unittest::optional_string_extension, "something else");
137
+
138
+ // This tests concatenating.
139
+ message2.AddExtension(unittest::repeated_int32_extension,
140
+ message.GetExtension(unittest::repeated_int32_extension, 1));
141
+ int32 i = message.GetExtension(unittest::repeated_int32_extension, 0);
142
+ message.ClearExtension(unittest::repeated_int32_extension);
143
+ message.AddExtension(unittest::repeated_int32_extension, i);
144
+
145
+ ReflectionOps::Merge(message2, &message);
146
+
147
+ TestUtil::ExpectAllExtensionsSet(message);
148
+ }
149
+
150
+ TEST(ReflectionOpsTest, MergeUnknown) {
151
+ // Test that the messages' UnknownFieldSets are correctly merged.
152
+ unittest::TestEmptyMessage message1, message2;
153
+ message1.mutable_unknown_fields()->AddVarint(1234, 1);
154
+ message2.mutable_unknown_fields()->AddVarint(1234, 2);
155
+
156
+ ReflectionOps::Merge(message2, &message1);
157
+
158
+ ASSERT_EQ(2, message1.unknown_fields().field_count());
159
+ ASSERT_EQ(UnknownField::TYPE_VARINT,
160
+ message1.unknown_fields().field(0).type());
161
+ EXPECT_EQ(1, message1.unknown_fields().field(0).varint());
162
+ ASSERT_EQ(UnknownField::TYPE_VARINT,
163
+ message1.unknown_fields().field(1).type());
164
+ EXPECT_EQ(2, message1.unknown_fields().field(1).varint());
165
+ }
166
+
167
+ TEST(ReflectionOpsTest, MergeOneof) {
168
+ unittest::TestOneof2 message1, message2;
169
+ TestUtil::SetOneof1(&message1);
170
+
171
+ // Merge to empty message
172
+ ReflectionOps::Merge(message1, &message2);
173
+ TestUtil::ExpectOneofSet1(message2);
174
+
175
+ // Merge with the same oneof fields
176
+ ReflectionOps::Merge(message1, &message2);
177
+ TestUtil::ExpectOneofSet1(message2);
178
+
179
+ // Merge with different oneof fields
180
+ TestUtil::SetOneof2(&message1);
181
+ ReflectionOps::Merge(message1, &message2);
182
+ TestUtil::ExpectOneofSet2(message2);
183
+ }
184
+
185
+ #ifdef PROTOBUF_HAS_DEATH_TEST
186
+
187
+ TEST(ReflectionOpsTest, MergeFromSelf) {
188
+ // Note: Copy is implemented in terms of Merge() so technically the Copy
189
+ // test already tested most of this.
190
+
191
+ unittest::TestAllTypes message;
192
+
193
+ EXPECT_DEATH(
194
+ ReflectionOps::Merge(message, &message),
195
+ "&from");
196
+ }
197
+
198
+ #endif // PROTOBUF_HAS_DEATH_TEST
199
+
200
+ TEST(ReflectionOpsTest, Clear) {
201
+ unittest::TestAllTypes message;
202
+
203
+ TestUtil::SetAllFields(&message);
204
+
205
+ ReflectionOps::Clear(&message);
206
+
207
+ TestUtil::ExpectClear(message);
208
+
209
+ // Check that getting embedded messages returns the objects created during
210
+ // SetAllFields() rather than default instances.
211
+ EXPECT_NE(&unittest::TestAllTypes::OptionalGroup::default_instance(),
212
+ &message.optionalgroup());
213
+ EXPECT_NE(&unittest::TestAllTypes::NestedMessage::default_instance(),
214
+ &message.optional_nested_message());
215
+ EXPECT_NE(&unittest::ForeignMessage::default_instance(),
216
+ &message.optional_foreign_message());
217
+ EXPECT_NE(&unittest_import::ImportMessage::default_instance(),
218
+ &message.optional_import_message());
219
+ }
220
+
221
+ TEST(ReflectionOpsTest, ClearExtensions) {
222
+ unittest::TestAllExtensions message;
223
+
224
+ TestUtil::SetAllExtensions(&message);
225
+
226
+ ReflectionOps::Clear(&message);
227
+
228
+ TestUtil::ExpectExtensionsClear(message);
229
+
230
+ // Check that getting embedded messages returns the objects created during
231
+ // SetAllExtensions() rather than default instances.
232
+ EXPECT_NE(&unittest::OptionalGroup_extension::default_instance(),
233
+ &message.GetExtension(unittest::optionalgroup_extension));
234
+ EXPECT_NE(&unittest::TestAllTypes::NestedMessage::default_instance(),
235
+ &message.GetExtension(unittest::optional_nested_message_extension));
236
+ EXPECT_NE(&unittest::ForeignMessage::default_instance(),
237
+ &message.GetExtension(
238
+ unittest::optional_foreign_message_extension));
239
+ EXPECT_NE(&unittest_import::ImportMessage::default_instance(),
240
+ &message.GetExtension(unittest::optional_import_message_extension));
241
+ }
242
+
243
+ TEST(ReflectionOpsTest, ClearUnknown) {
244
+ // Test that the message's UnknownFieldSet is correctly cleared.
245
+ unittest::TestEmptyMessage message;
246
+ message.mutable_unknown_fields()->AddVarint(1234, 1);
247
+
248
+ ReflectionOps::Clear(&message);
249
+
250
+ EXPECT_EQ(0, message.unknown_fields().field_count());
251
+ }
252
+
253
+ TEST(ReflectionOpsTest, ClearOneof) {
254
+ unittest::TestOneof2 message;
255
+
256
+ TestUtil::ExpectOneofClear(message);
257
+ TestUtil::SetOneof1(&message);
258
+ TestUtil::ExpectOneofSet1(message);
259
+ ReflectionOps::Clear(&message);
260
+ TestUtil::ExpectOneofClear(message);
261
+
262
+ TestUtil::SetOneof1(&message);
263
+ TestUtil::ExpectOneofSet1(message);
264
+ TestUtil::SetOneof2(&message);
265
+ TestUtil::ExpectOneofSet2(message);
266
+ ReflectionOps::Clear(&message);
267
+ TestUtil::ExpectOneofClear(message);
268
+ }
269
+
270
+ TEST(ReflectionOpsTest, DiscardUnknownFields) {
271
+ unittest::TestAllTypes message;
272
+ TestUtil::SetAllFields(&message);
273
+
274
+ // Set some unknown fields in message.
275
+ message.mutable_unknown_fields()
276
+ ->AddVarint(123456, 654321);
277
+ message.mutable_optional_nested_message()
278
+ ->mutable_unknown_fields()
279
+ ->AddVarint(123456, 654321);
280
+ message.mutable_repeated_nested_message(0)
281
+ ->mutable_unknown_fields()
282
+ ->AddVarint(123456, 654321);
283
+
284
+ EXPECT_EQ(1, message.unknown_fields().field_count());
285
+ EXPECT_EQ(1, message.optional_nested_message()
286
+ .unknown_fields().field_count());
287
+ EXPECT_EQ(1, message.repeated_nested_message(0)
288
+ .unknown_fields().field_count());
289
+
290
+ // Discard them.
291
+ ReflectionOps::DiscardUnknownFields(&message);
292
+ TestUtil::ExpectAllFieldsSet(message);
293
+
294
+ EXPECT_EQ(0, message.unknown_fields().field_count());
295
+ EXPECT_EQ(0, message.optional_nested_message()
296
+ .unknown_fields().field_count());
297
+ EXPECT_EQ(0, message.repeated_nested_message(0)
298
+ .unknown_fields().field_count());
299
+ }
300
+
301
+ TEST(ReflectionOpsTest, DiscardUnknownExtensions) {
302
+ unittest::TestAllExtensions message;
303
+ TestUtil::SetAllExtensions(&message);
304
+
305
+ // Set some unknown fields.
306
+ message.mutable_unknown_fields()
307
+ ->AddVarint(123456, 654321);
308
+ message.MutableExtension(unittest::optional_nested_message_extension)
309
+ ->mutable_unknown_fields()
310
+ ->AddVarint(123456, 654321);
311
+ message.MutableExtension(unittest::repeated_nested_message_extension, 0)
312
+ ->mutable_unknown_fields()
313
+ ->AddVarint(123456, 654321);
314
+
315
+ EXPECT_EQ(1, message.unknown_fields().field_count());
316
+ EXPECT_EQ(1,
317
+ message.GetExtension(unittest::optional_nested_message_extension)
318
+ .unknown_fields().field_count());
319
+ EXPECT_EQ(1,
320
+ message.GetExtension(unittest::repeated_nested_message_extension, 0)
321
+ .unknown_fields().field_count());
322
+
323
+ // Discard them.
324
+ ReflectionOps::DiscardUnknownFields(&message);
325
+ TestUtil::ExpectAllExtensionsSet(message);
326
+
327
+ EXPECT_EQ(0, message.unknown_fields().field_count());
328
+ EXPECT_EQ(0,
329
+ message.GetExtension(unittest::optional_nested_message_extension)
330
+ .unknown_fields().field_count());
331
+ EXPECT_EQ(0,
332
+ message.GetExtension(unittest::repeated_nested_message_extension, 0)
333
+ .unknown_fields().field_count());
334
+ }
335
+
336
+ TEST(ReflectionOpsTest, IsInitialized) {
337
+ unittest::TestRequired message;
338
+
339
+ EXPECT_FALSE(ReflectionOps::IsInitialized(message));
340
+ message.set_a(1);
341
+ EXPECT_FALSE(ReflectionOps::IsInitialized(message));
342
+ message.set_b(2);
343
+ EXPECT_FALSE(ReflectionOps::IsInitialized(message));
344
+ message.set_c(3);
345
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
346
+ }
347
+
348
+ TEST(ReflectionOpsTest, ForeignIsInitialized) {
349
+ unittest::TestRequiredForeign message;
350
+
351
+ // Starts out initialized because the foreign message is itself an optional
352
+ // field.
353
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
354
+
355
+ // Once we create that field, the message is no longer initialized.
356
+ message.mutable_optional_message();
357
+ EXPECT_FALSE(ReflectionOps::IsInitialized(message));
358
+
359
+ // Initialize it. Now we're initialized.
360
+ message.mutable_optional_message()->set_a(1);
361
+ message.mutable_optional_message()->set_b(2);
362
+ message.mutable_optional_message()->set_c(3);
363
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
364
+
365
+ // Add a repeated version of the message. No longer initialized.
366
+ unittest::TestRequired* sub_message = message.add_repeated_message();
367
+ EXPECT_FALSE(ReflectionOps::IsInitialized(message));
368
+
369
+ // Initialize that repeated version.
370
+ sub_message->set_a(1);
371
+ sub_message->set_b(2);
372
+ sub_message->set_c(3);
373
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
374
+ }
375
+
376
+ TEST(ReflectionOpsTest, ExtensionIsInitialized) {
377
+ unittest::TestAllExtensions message;
378
+
379
+ // Starts out initialized because the foreign message is itself an optional
380
+ // field.
381
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
382
+
383
+ // Once we create that field, the message is no longer initialized.
384
+ message.MutableExtension(unittest::TestRequired::single);
385
+ EXPECT_FALSE(ReflectionOps::IsInitialized(message));
386
+
387
+ // Initialize it. Now we're initialized.
388
+ message.MutableExtension(unittest::TestRequired::single)->set_a(1);
389
+ message.MutableExtension(unittest::TestRequired::single)->set_b(2);
390
+ message.MutableExtension(unittest::TestRequired::single)->set_c(3);
391
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
392
+
393
+ // Add a repeated version of the message. No longer initialized.
394
+ message.AddExtension(unittest::TestRequired::multi);
395
+ EXPECT_FALSE(ReflectionOps::IsInitialized(message));
396
+
397
+ // Initialize that repeated version.
398
+ message.MutableExtension(unittest::TestRequired::multi, 0)->set_a(1);
399
+ message.MutableExtension(unittest::TestRequired::multi, 0)->set_b(2);
400
+ message.MutableExtension(unittest::TestRequired::multi, 0)->set_c(3);
401
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
402
+ }
403
+
404
+ TEST(ReflectionOpsTest, OneofIsInitialized) {
405
+ unittest::TestRequiredOneof message;
406
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
407
+
408
+ message.mutable_foo_message();
409
+ EXPECT_FALSE(ReflectionOps::IsInitialized(message));
410
+
411
+ message.set_foo_int(1);
412
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
413
+
414
+ message.mutable_foo_message();
415
+ EXPECT_FALSE(ReflectionOps::IsInitialized(message));
416
+ message.mutable_foo_message()->set_required_double(0.1);
417
+ EXPECT_TRUE(ReflectionOps::IsInitialized(message));
418
+ }
419
+
420
+ static string FindInitializationErrors(const Message& message) {
421
+ vector<string> errors;
422
+ ReflectionOps::FindInitializationErrors(message, "", &errors);
423
+ return Join(errors, ",");
424
+ }
425
+
426
+ TEST(ReflectionOpsTest, FindInitializationErrors) {
427
+ unittest::TestRequired message;
428
+ EXPECT_EQ("a,b,c", FindInitializationErrors(message));
429
+ }
430
+
431
+ TEST(ReflectionOpsTest, FindForeignInitializationErrors) {
432
+ unittest::TestRequiredForeign message;
433
+ message.mutable_optional_message();
434
+ message.add_repeated_message();
435
+ message.add_repeated_message();
436
+ EXPECT_EQ("optional_message.a,"
437
+ "optional_message.b,"
438
+ "optional_message.c,"
439
+ "repeated_message[0].a,"
440
+ "repeated_message[0].b,"
441
+ "repeated_message[0].c,"
442
+ "repeated_message[1].a,"
443
+ "repeated_message[1].b,"
444
+ "repeated_message[1].c",
445
+ FindInitializationErrors(message));
446
+ }
447
+
448
+ TEST(ReflectionOpsTest, FindExtensionInitializationErrors) {
449
+ unittest::TestAllExtensions message;
450
+ message.MutableExtension(unittest::TestRequired::single);
451
+ message.AddExtension(unittest::TestRequired::multi);
452
+ message.AddExtension(unittest::TestRequired::multi);
453
+ EXPECT_EQ("(protobuf_unittest.TestRequired.single).a,"
454
+ "(protobuf_unittest.TestRequired.single).b,"
455
+ "(protobuf_unittest.TestRequired.single).c,"
456
+ "(protobuf_unittest.TestRequired.multi)[0].a,"
457
+ "(protobuf_unittest.TestRequired.multi)[0].b,"
458
+ "(protobuf_unittest.TestRequired.multi)[0].c,"
459
+ "(protobuf_unittest.TestRequired.multi)[1].a,"
460
+ "(protobuf_unittest.TestRequired.multi)[1].b,"
461
+ "(protobuf_unittest.TestRequired.multi)[1].c",
462
+ FindInitializationErrors(message));
463
+ }
464
+
465
+ TEST(ReflectionOpsTest, FindOneofInitializationErrors) {
466
+ unittest::TestRequiredOneof message;
467
+ message.mutable_foo_message();
468
+ EXPECT_EQ("foo_message.required_double",
469
+ FindInitializationErrors(message));
470
+ }
471
+
472
+ } // namespace
473
+ } // namespace internal
474
+ } // namespace protobuf
475
+ } // namespace google