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,350 @@
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
+
33
+ #include <string>
34
+ #include <iostream>
35
+
36
+ #include <google/protobuf/stubs/common.h>
37
+ #include <google/protobuf/test_util_lite.h>
38
+ #include <google/protobuf/unittest_lite.pb.h>
39
+ #include <google/protobuf/io/coded_stream.h>
40
+ #include <google/protobuf/io/zero_copy_stream_impl_lite.h>
41
+ #include <google/protobuf/wire_format_lite.h>
42
+ #include <google/protobuf/wire_format_lite_inl.h>
43
+
44
+ using namespace std;
45
+
46
+ namespace {
47
+ // Helper methods to test parsing merge behavior.
48
+ void ExpectMessageMerged(const google::protobuf::unittest::TestAllTypesLite& message) {
49
+ GOOGLE_CHECK(message.optional_int32() == 3);
50
+ GOOGLE_CHECK(message.optional_int64() == 2);
51
+ GOOGLE_CHECK(message.optional_string() == "hello");
52
+ }
53
+
54
+ void AssignParsingMergeMessages(
55
+ google::protobuf::unittest::TestAllTypesLite* msg1,
56
+ google::protobuf::unittest::TestAllTypesLite* msg2,
57
+ google::protobuf::unittest::TestAllTypesLite* msg3) {
58
+ msg1->set_optional_int32(1);
59
+ msg2->set_optional_int64(2);
60
+ msg3->set_optional_int32(3);
61
+ msg3->set_optional_string("hello");
62
+ }
63
+
64
+ void SetAllTypesInEmptyMessageUnknownFields(
65
+ google::protobuf::unittest::TestEmptyMessageLite* empty_message) {
66
+ protobuf_unittest::TestAllTypesLite message;
67
+ google::protobuf::TestUtilLite::ExpectClear(message);
68
+ google::protobuf::TestUtilLite::SetAllFields(&message);
69
+ string data = message.SerializeAsString();
70
+ empty_message->ParseFromString(data);
71
+ }
72
+
73
+ void SetSomeTypesInEmptyMessageUnknownFields(
74
+ google::protobuf::unittest::TestEmptyMessageLite* empty_message) {
75
+ protobuf_unittest::TestAllTypesLite message;
76
+ google::protobuf::TestUtilLite::ExpectClear(message);
77
+ message.set_optional_int32(101);
78
+ message.set_optional_int64(102);
79
+ message.set_optional_uint32(103);
80
+ message.set_optional_uint64(104);
81
+ string data = message.SerializeAsString();
82
+ empty_message->ParseFromString(data);
83
+ }
84
+
85
+ } // namespace
86
+
87
+ int main(int argc, char* argv[]) {
88
+ string data, data2, packed_data;
89
+
90
+ {
91
+ protobuf_unittest::TestAllTypesLite message, message2, message3;
92
+ google::protobuf::TestUtilLite::ExpectClear(message);
93
+ google::protobuf::TestUtilLite::SetAllFields(&message);
94
+ message2.CopyFrom(message);
95
+ data = message.SerializeAsString();
96
+ message3.ParseFromString(data);
97
+ google::protobuf::TestUtilLite::ExpectAllFieldsSet(message);
98
+ google::protobuf::TestUtilLite::ExpectAllFieldsSet(message2);
99
+ google::protobuf::TestUtilLite::ExpectAllFieldsSet(message3);
100
+ google::protobuf::TestUtilLite::ModifyRepeatedFields(&message);
101
+ google::protobuf::TestUtilLite::ExpectRepeatedFieldsModified(message);
102
+ message.Clear();
103
+ google::protobuf::TestUtilLite::ExpectClear(message);
104
+ }
105
+
106
+ {
107
+ protobuf_unittest::TestAllExtensionsLite message, message2, message3;
108
+ google::protobuf::TestUtilLite::ExpectExtensionsClear(message);
109
+ google::protobuf::TestUtilLite::SetAllExtensions(&message);
110
+ message2.CopyFrom(message);
111
+ string extensions_data = message.SerializeAsString();
112
+ message3.ParseFromString(extensions_data);
113
+ google::protobuf::TestUtilLite::ExpectAllExtensionsSet(message);
114
+ google::protobuf::TestUtilLite::ExpectAllExtensionsSet(message2);
115
+ google::protobuf::TestUtilLite::ExpectAllExtensionsSet(message3);
116
+ google::protobuf::TestUtilLite::ModifyRepeatedExtensions(&message);
117
+ google::protobuf::TestUtilLite::ExpectRepeatedExtensionsModified(message);
118
+ message.Clear();
119
+ google::protobuf::TestUtilLite::ExpectExtensionsClear(message);
120
+ }
121
+
122
+ {
123
+ protobuf_unittest::TestPackedTypesLite message, message2, message3;
124
+ google::protobuf::TestUtilLite::ExpectPackedClear(message);
125
+ google::protobuf::TestUtilLite::SetPackedFields(&message);
126
+ message2.CopyFrom(message);
127
+ packed_data = message.SerializeAsString();
128
+ message3.ParseFromString(packed_data);
129
+ google::protobuf::TestUtilLite::ExpectPackedFieldsSet(message);
130
+ google::protobuf::TestUtilLite::ExpectPackedFieldsSet(message2);
131
+ google::protobuf::TestUtilLite::ExpectPackedFieldsSet(message3);
132
+ google::protobuf::TestUtilLite::ModifyPackedFields(&message);
133
+ google::protobuf::TestUtilLite::ExpectPackedFieldsModified(message);
134
+ message.Clear();
135
+ google::protobuf::TestUtilLite::ExpectPackedClear(message);
136
+ }
137
+
138
+ {
139
+ protobuf_unittest::TestPackedExtensionsLite message, message2, message3;
140
+ google::protobuf::TestUtilLite::ExpectPackedExtensionsClear(message);
141
+ google::protobuf::TestUtilLite::SetPackedExtensions(&message);
142
+ message2.CopyFrom(message);
143
+ string packed_extensions_data = message.SerializeAsString();
144
+ GOOGLE_CHECK(packed_extensions_data == packed_data);
145
+ message3.ParseFromString(packed_extensions_data);
146
+ google::protobuf::TestUtilLite::ExpectPackedExtensionsSet(message);
147
+ google::protobuf::TestUtilLite::ExpectPackedExtensionsSet(message2);
148
+ google::protobuf::TestUtilLite::ExpectPackedExtensionsSet(message3);
149
+ google::protobuf::TestUtilLite::ModifyPackedExtensions(&message);
150
+ google::protobuf::TestUtilLite::ExpectPackedExtensionsModified(message);
151
+ message.Clear();
152
+ google::protobuf::TestUtilLite::ExpectPackedExtensionsClear(message);
153
+ }
154
+
155
+ {
156
+ // Test that if an optional or required message/group field appears multiple
157
+ // times in the input, they need to be merged.
158
+ google::protobuf::unittest::TestParsingMergeLite::RepeatedFieldsGenerator generator;
159
+ google::protobuf::unittest::TestAllTypesLite* msg1;
160
+ google::protobuf::unittest::TestAllTypesLite* msg2;
161
+ google::protobuf::unittest::TestAllTypesLite* msg3;
162
+
163
+ #define ASSIGN_REPEATED_FIELD(FIELD) \
164
+ msg1 = generator.add_##FIELD(); \
165
+ msg2 = generator.add_##FIELD(); \
166
+ msg3 = generator.add_##FIELD(); \
167
+ AssignParsingMergeMessages(msg1, msg2, msg3)
168
+
169
+ ASSIGN_REPEATED_FIELD(field1);
170
+ ASSIGN_REPEATED_FIELD(field2);
171
+ ASSIGN_REPEATED_FIELD(field3);
172
+ ASSIGN_REPEATED_FIELD(ext1);
173
+ ASSIGN_REPEATED_FIELD(ext2);
174
+
175
+ #undef ASSIGN_REPEATED_FIELD
176
+ #define ASSIGN_REPEATED_GROUP(FIELD) \
177
+ msg1 = generator.add_##FIELD()->mutable_field1(); \
178
+ msg2 = generator.add_##FIELD()->mutable_field1(); \
179
+ msg3 = generator.add_##FIELD()->mutable_field1(); \
180
+ AssignParsingMergeMessages(msg1, msg2, msg3)
181
+
182
+ ASSIGN_REPEATED_GROUP(group1);
183
+ ASSIGN_REPEATED_GROUP(group2);
184
+
185
+ #undef ASSIGN_REPEATED_GROUP
186
+
187
+ string buffer;
188
+ generator.SerializeToString(&buffer);
189
+ google::protobuf::unittest::TestParsingMergeLite parsing_merge;
190
+ parsing_merge.ParseFromString(buffer);
191
+
192
+ // Required and optional fields should be merged.
193
+ ExpectMessageMerged(parsing_merge.required_all_types());
194
+ ExpectMessageMerged(parsing_merge.optional_all_types());
195
+ ExpectMessageMerged(
196
+ parsing_merge.optionalgroup().optional_group_all_types());
197
+ ExpectMessageMerged(parsing_merge.GetExtension(
198
+ google::protobuf::unittest::TestParsingMergeLite::optional_ext));
199
+
200
+ // Repeated fields should not be merged.
201
+ GOOGLE_CHECK(parsing_merge.repeated_all_types_size() == 3);
202
+ GOOGLE_CHECK(parsing_merge.repeatedgroup_size() == 3);
203
+ GOOGLE_CHECK(parsing_merge.ExtensionSize(
204
+ google::protobuf::unittest::TestParsingMergeLite::repeated_ext) == 3);
205
+ }
206
+
207
+ // Test unknown fields support for lite messages.
208
+ {
209
+ protobuf_unittest::TestAllTypesLite message, message2;
210
+ protobuf_unittest::TestEmptyMessageLite empty_message;
211
+ google::protobuf::TestUtilLite::ExpectClear(message);
212
+ google::protobuf::TestUtilLite::SetAllFields(&message);
213
+ data = message.SerializeAsString();
214
+ empty_message.ParseFromString(data);
215
+ data.clear();
216
+ data = empty_message.SerializeAsString();
217
+ message2.ParseFromString(data);
218
+ data = message2.SerializeAsString();
219
+ google::protobuf::TestUtilLite::ExpectAllFieldsSet(message2);
220
+ message.Clear();
221
+ google::protobuf::TestUtilLite::ExpectClear(message);
222
+ }
223
+
224
+ {
225
+ protobuf_unittest::TestAllExtensionsLite message, message2;
226
+ protobuf_unittest::TestEmptyMessageLite empty_message;
227
+ google::protobuf::TestUtilLite::ExpectExtensionsClear(message);
228
+ google::protobuf::TestUtilLite::SetAllExtensions(&message);
229
+ data = message.SerializeAsString();
230
+ empty_message.ParseFromString(data);
231
+ data.clear();
232
+ data = empty_message.SerializeAsString();
233
+ message2.ParseFromString(data);
234
+ data = message2.SerializeAsString();
235
+ google::protobuf::TestUtilLite::ExpectAllExtensionsSet(message2);
236
+ message.Clear();
237
+ google::protobuf::TestUtilLite::ExpectExtensionsClear(message);
238
+ }
239
+
240
+ {
241
+ protobuf_unittest::TestPackedTypesLite message, message2;
242
+ protobuf_unittest::TestEmptyMessageLite empty_message;
243
+ google::protobuf::TestUtilLite::ExpectPackedClear(message);
244
+ google::protobuf::TestUtilLite::SetPackedFields(&message);
245
+ data = message.SerializeAsString();
246
+ empty_message.ParseFromString(data);
247
+ data.clear();
248
+ data = empty_message.SerializeAsString();
249
+ message2.ParseFromString(data);
250
+ data = message2.SerializeAsString();
251
+ google::protobuf::TestUtilLite::ExpectPackedFieldsSet(message2);
252
+ message.Clear();
253
+ google::protobuf::TestUtilLite::ExpectPackedClear(message);
254
+ }
255
+
256
+ {
257
+ protobuf_unittest::TestPackedExtensionsLite message, message2;
258
+ protobuf_unittest::TestEmptyMessageLite empty_message;
259
+ google::protobuf::TestUtilLite::ExpectPackedExtensionsClear(message);
260
+ google::protobuf::TestUtilLite::SetPackedExtensions(&message);
261
+ data = message.SerializeAsString();
262
+ empty_message.ParseFromString(data);
263
+ data.clear();
264
+ data = empty_message.SerializeAsString();
265
+ message2.ParseFromString(data);
266
+ data = message2.SerializeAsString();
267
+ google::protobuf::TestUtilLite::ExpectPackedExtensionsSet(message2);
268
+ message.Clear();
269
+ google::protobuf::TestUtilLite::ExpectPackedExtensionsClear(message);
270
+ }
271
+
272
+ {
273
+ // Test Unknown fields swap
274
+ protobuf_unittest::TestEmptyMessageLite empty_message, empty_message2;
275
+ SetAllTypesInEmptyMessageUnknownFields(&empty_message);
276
+ SetSomeTypesInEmptyMessageUnknownFields(&empty_message2);
277
+ data = empty_message.SerializeAsString();
278
+ data2 = empty_message2.SerializeAsString();
279
+ empty_message.Swap(&empty_message2);
280
+ GOOGLE_CHECK_EQ(data, empty_message2.SerializeAsString());
281
+ GOOGLE_CHECK_EQ(data2, empty_message.SerializeAsString());
282
+ }
283
+
284
+ {
285
+ // Test unknown fields swap with self
286
+ protobuf_unittest::TestEmptyMessageLite empty_message;
287
+ SetAllTypesInEmptyMessageUnknownFields(&empty_message);
288
+ data = empty_message.SerializeAsString();
289
+ empty_message.Swap(&empty_message);
290
+ GOOGLE_CHECK_EQ(data, empty_message.SerializeAsString());
291
+ }
292
+
293
+ {
294
+ // Test MergeFrom with unknown fields
295
+ protobuf_unittest::TestAllTypesLite message, message2;
296
+ protobuf_unittest::TestEmptyMessageLite empty_message, empty_message2;
297
+ message.set_optional_int32(101);
298
+ message.add_repeated_int32(201);
299
+ message.set_optional_nested_enum(google::protobuf::unittest::TestAllTypesLite::BAZ);
300
+ message2.set_optional_int64(102);
301
+ message2.add_repeated_int64(202);
302
+ message2.set_optional_foreign_enum(google::protobuf::unittest::FOREIGN_LITE_BAZ);
303
+
304
+ data = message.SerializeAsString();
305
+ empty_message.ParseFromString(data);
306
+ data = message2.SerializeAsString();
307
+ empty_message2.ParseFromString(data);
308
+ message.MergeFrom(message2);
309
+ empty_message.MergeFrom(empty_message2);
310
+
311
+ data = empty_message.SerializeAsString();
312
+ message2.ParseFromString(data);
313
+ // We do not compare the serialized output of a normal message and a lite
314
+ // message because the order of fields do not match. We convert lite message
315
+ // back into normal message, then compare.
316
+ GOOGLE_CHECK_EQ(message.SerializeAsString(), message2.SerializeAsString());
317
+ }
318
+
319
+ {
320
+ // Test unknown enum value
321
+ protobuf_unittest::TestAllTypesLite message;
322
+ string buffer;
323
+ {
324
+ google::protobuf::io::StringOutputStream output_stream(&buffer);
325
+ google::protobuf::io::CodedOutputStream coded_output(&output_stream);
326
+ google::protobuf::internal::WireFormatLite::WriteTag(
327
+ protobuf_unittest::TestAllTypesLite::kOptionalNestedEnumFieldNumber,
328
+ google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT, &coded_output);
329
+ coded_output.WriteVarint32(10);
330
+ google::protobuf::internal::WireFormatLite::WriteTag(
331
+ protobuf_unittest::TestAllTypesLite::kRepeatedNestedEnumFieldNumber,
332
+ google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT, &coded_output);
333
+ coded_output.WriteVarint32(20);
334
+ }
335
+ message.ParseFromString(buffer);
336
+ data = message.SerializeAsString();
337
+ GOOGLE_CHECK_EQ(data, buffer);
338
+ }
339
+
340
+ {
341
+ // Test Clear with unknown fields
342
+ protobuf_unittest::TestEmptyMessageLite empty_message;
343
+ SetAllTypesInEmptyMessageUnknownFields(&empty_message);
344
+ empty_message.Clear();
345
+ GOOGLE_CHECK_EQ(0, empty_message.unknown_fields().size());
346
+ }
347
+
348
+ cout << "PASS" << endl;
349
+ return 0;
350
+ }
@@ -0,0 +1,358 @@
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 <iostream>
36
+ #include <stack>
37
+ #include <google/protobuf/stubs/hash.h>
38
+
39
+ #include <google/protobuf/message.h>
40
+
41
+ #include <google/protobuf/stubs/common.h>
42
+ #include <google/protobuf/stubs/once.h>
43
+ #include <google/protobuf/io/coded_stream.h>
44
+ #include <google/protobuf/io/zero_copy_stream_impl.h>
45
+ #include <google/protobuf/descriptor.pb.h>
46
+ #include <google/protobuf/descriptor.h>
47
+ #include <google/protobuf/generated_message_util.h>
48
+ #include <google/protobuf/reflection_ops.h>
49
+ #include <google/protobuf/wire_format.h>
50
+ #include <google/protobuf/stubs/strutil.h>
51
+ #include <google/protobuf/stubs/map_util.h>
52
+ #include <google/protobuf/stubs/stl_util.h>
53
+
54
+ namespace google {
55
+ namespace protobuf {
56
+
57
+ using internal::WireFormat;
58
+ using internal::ReflectionOps;
59
+
60
+ Message::~Message() {}
61
+
62
+ void Message::MergeFrom(const Message& from) {
63
+ const Descriptor* descriptor = GetDescriptor();
64
+ GOOGLE_CHECK_EQ(from.GetDescriptor(), descriptor)
65
+ << ": Tried to merge from a message with a different type. "
66
+ "to: " << descriptor->full_name() << ", "
67
+ "from:" << from.GetDescriptor()->full_name();
68
+ ReflectionOps::Merge(from, this);
69
+ }
70
+
71
+ void Message::CheckTypeAndMergeFrom(const MessageLite& other) {
72
+ MergeFrom(*down_cast<const Message*>(&other));
73
+ }
74
+
75
+ void Message::CopyFrom(const Message& from) {
76
+ const Descriptor* descriptor = GetDescriptor();
77
+ GOOGLE_CHECK_EQ(from.GetDescriptor(), descriptor)
78
+ << ": Tried to copy from a message with a different type. "
79
+ "to: " << descriptor->full_name() << ", "
80
+ "from:" << from.GetDescriptor()->full_name();
81
+ ReflectionOps::Copy(from, this);
82
+ }
83
+
84
+ string Message::GetTypeName() const {
85
+ return GetDescriptor()->full_name();
86
+ }
87
+
88
+ void Message::Clear() {
89
+ ReflectionOps::Clear(this);
90
+ }
91
+
92
+ bool Message::IsInitialized() const {
93
+ return ReflectionOps::IsInitialized(*this);
94
+ }
95
+
96
+ void Message::FindInitializationErrors(vector<string>* errors) const {
97
+ return ReflectionOps::FindInitializationErrors(*this, "", errors);
98
+ }
99
+
100
+ string Message::InitializationErrorString() const {
101
+ vector<string> errors;
102
+ FindInitializationErrors(&errors);
103
+ return Join(errors, ", ");
104
+ }
105
+
106
+ void Message::CheckInitialized() const {
107
+ GOOGLE_CHECK(IsInitialized())
108
+ << "Message of type \"" << GetDescriptor()->full_name()
109
+ << "\" is missing required fields: " << InitializationErrorString();
110
+ }
111
+
112
+ void Message::DiscardUnknownFields() {
113
+ return ReflectionOps::DiscardUnknownFields(this);
114
+ }
115
+
116
+ bool Message::MergePartialFromCodedStream(io::CodedInputStream* input) {
117
+ return WireFormat::ParseAndMergePartial(input, this);
118
+ }
119
+
120
+ bool Message::ParseFromFileDescriptor(int file_descriptor) {
121
+ io::FileInputStream input(file_descriptor);
122
+ return ParseFromZeroCopyStream(&input) && input.GetErrno() == 0;
123
+ }
124
+
125
+ bool Message::ParsePartialFromFileDescriptor(int file_descriptor) {
126
+ io::FileInputStream input(file_descriptor);
127
+ return ParsePartialFromZeroCopyStream(&input) && input.GetErrno() == 0;
128
+ }
129
+
130
+ bool Message::ParseFromIstream(istream* input) {
131
+ io::IstreamInputStream zero_copy_input(input);
132
+ return ParseFromZeroCopyStream(&zero_copy_input) && input->eof();
133
+ }
134
+
135
+ bool Message::ParsePartialFromIstream(istream* input) {
136
+ io::IstreamInputStream zero_copy_input(input);
137
+ return ParsePartialFromZeroCopyStream(&zero_copy_input) && input->eof();
138
+ }
139
+
140
+
141
+ void Message::SerializeWithCachedSizes(
142
+ io::CodedOutputStream* output) const {
143
+ WireFormat::SerializeWithCachedSizes(*this, GetCachedSize(), output);
144
+ }
145
+
146
+ int Message::ByteSize() const {
147
+ int size = WireFormat::ByteSize(*this);
148
+ SetCachedSize(size);
149
+ return size;
150
+ }
151
+
152
+ void Message::SetCachedSize(int /* size */) const {
153
+ GOOGLE_LOG(FATAL) << "Message class \"" << GetDescriptor()->full_name()
154
+ << "\" implements neither SetCachedSize() nor ByteSize(). "
155
+ "Must implement one or the other.";
156
+ }
157
+
158
+ int Message::SpaceUsed() const {
159
+ return GetReflection()->SpaceUsed(*this);
160
+ }
161
+
162
+ bool Message::SerializeToFileDescriptor(int file_descriptor) const {
163
+ io::FileOutputStream output(file_descriptor);
164
+ return SerializeToZeroCopyStream(&output);
165
+ }
166
+
167
+ bool Message::SerializePartialToFileDescriptor(int file_descriptor) const {
168
+ io::FileOutputStream output(file_descriptor);
169
+ return SerializePartialToZeroCopyStream(&output);
170
+ }
171
+
172
+ bool Message::SerializeToOstream(ostream* output) const {
173
+ {
174
+ io::OstreamOutputStream zero_copy_output(output);
175
+ if (!SerializeToZeroCopyStream(&zero_copy_output)) return false;
176
+ }
177
+ return output->good();
178
+ }
179
+
180
+ bool Message::SerializePartialToOstream(ostream* output) const {
181
+ io::OstreamOutputStream zero_copy_output(output);
182
+ return SerializePartialToZeroCopyStream(&zero_copy_output);
183
+ }
184
+
185
+
186
+ // =============================================================================
187
+ // Reflection and associated Template Specializations
188
+
189
+ Reflection::~Reflection() {}
190
+
191
+ #define HANDLE_TYPE(TYPE, CPPTYPE, CTYPE) \
192
+ template<> \
193
+ const RepeatedField<TYPE>& Reflection::GetRepeatedField<TYPE>( \
194
+ const Message& message, const FieldDescriptor* field) const { \
195
+ return *static_cast<RepeatedField<TYPE>* >( \
196
+ MutableRawRepeatedField(const_cast<Message*>(&message), \
197
+ field, CPPTYPE, CTYPE, NULL)); \
198
+ } \
199
+ \
200
+ template<> \
201
+ RepeatedField<TYPE>* Reflection::MutableRepeatedField<TYPE>( \
202
+ Message* message, const FieldDescriptor* field) const { \
203
+ return static_cast<RepeatedField<TYPE>* >( \
204
+ MutableRawRepeatedField(message, field, CPPTYPE, CTYPE, NULL)); \
205
+ }
206
+
207
+ HANDLE_TYPE(int32, FieldDescriptor::CPPTYPE_INT32, -1);
208
+ HANDLE_TYPE(int64, FieldDescriptor::CPPTYPE_INT64, -1);
209
+ HANDLE_TYPE(uint32, FieldDescriptor::CPPTYPE_UINT32, -1);
210
+ HANDLE_TYPE(uint64, FieldDescriptor::CPPTYPE_UINT64, -1);
211
+ HANDLE_TYPE(float, FieldDescriptor::CPPTYPE_FLOAT, -1);
212
+ HANDLE_TYPE(double, FieldDescriptor::CPPTYPE_DOUBLE, -1);
213
+ HANDLE_TYPE(bool, FieldDescriptor::CPPTYPE_BOOL, -1);
214
+
215
+
216
+ #undef HANDLE_TYPE
217
+
218
+ void* Reflection::MutableRawRepeatedString(
219
+ Message* message, const FieldDescriptor* field, bool is_string) const {
220
+ return MutableRawRepeatedField(message, field,
221
+ FieldDescriptor::CPPTYPE_STRING, FieldOptions::STRING, NULL);
222
+ }
223
+
224
+
225
+ // =============================================================================
226
+ // MessageFactory
227
+
228
+ MessageFactory::~MessageFactory() {}
229
+
230
+ namespace {
231
+
232
+ class GeneratedMessageFactory : public MessageFactory {
233
+ public:
234
+ GeneratedMessageFactory();
235
+ ~GeneratedMessageFactory();
236
+
237
+ static GeneratedMessageFactory* singleton();
238
+
239
+ typedef void RegistrationFunc(const string&);
240
+ void RegisterFile(const char* file, RegistrationFunc* registration_func);
241
+ void RegisterType(const Descriptor* descriptor, const Message* prototype);
242
+
243
+ // implements MessageFactory ---------------------------------------
244
+ const Message* GetPrototype(const Descriptor* type);
245
+
246
+ private:
247
+ // Only written at static init time, so does not require locking.
248
+ hash_map<const char*, RegistrationFunc*,
249
+ hash<const char*>, streq> file_map_;
250
+
251
+ // Initialized lazily, so requires locking.
252
+ Mutex mutex_;
253
+ hash_map<const Descriptor*, const Message*> type_map_;
254
+ };
255
+
256
+ GeneratedMessageFactory* generated_message_factory_ = NULL;
257
+ GOOGLE_PROTOBUF_DECLARE_ONCE(generated_message_factory_once_init_);
258
+
259
+ void ShutdownGeneratedMessageFactory() {
260
+ delete generated_message_factory_;
261
+ }
262
+
263
+ void InitGeneratedMessageFactory() {
264
+ generated_message_factory_ = new GeneratedMessageFactory;
265
+ internal::OnShutdown(&ShutdownGeneratedMessageFactory);
266
+ }
267
+
268
+ GeneratedMessageFactory::GeneratedMessageFactory() {}
269
+ GeneratedMessageFactory::~GeneratedMessageFactory() {}
270
+
271
+ GeneratedMessageFactory* GeneratedMessageFactory::singleton() {
272
+ ::google::protobuf::GoogleOnceInit(&generated_message_factory_once_init_,
273
+ &InitGeneratedMessageFactory);
274
+ return generated_message_factory_;
275
+ }
276
+
277
+ void GeneratedMessageFactory::RegisterFile(
278
+ const char* file, RegistrationFunc* registration_func) {
279
+ if (!InsertIfNotPresent(&file_map_, file, registration_func)) {
280
+ GOOGLE_LOG(FATAL) << "File is already registered: " << file;
281
+ }
282
+ }
283
+
284
+ void GeneratedMessageFactory::RegisterType(const Descriptor* descriptor,
285
+ const Message* prototype) {
286
+ GOOGLE_DCHECK_EQ(descriptor->file()->pool(), DescriptorPool::generated_pool())
287
+ << "Tried to register a non-generated type with the generated "
288
+ "type registry.";
289
+
290
+ // This should only be called as a result of calling a file registration
291
+ // function during GetPrototype(), in which case we already have locked
292
+ // the mutex.
293
+ mutex_.AssertHeld();
294
+ if (!InsertIfNotPresent(&type_map_, descriptor, prototype)) {
295
+ GOOGLE_LOG(DFATAL) << "Type is already registered: " << descriptor->full_name();
296
+ }
297
+ }
298
+
299
+
300
+ const Message* GeneratedMessageFactory::GetPrototype(const Descriptor* type) {
301
+ {
302
+ ReaderMutexLock lock(&mutex_);
303
+ const Message* result = FindPtrOrNull(type_map_, type);
304
+ if (result != NULL) return result;
305
+ }
306
+
307
+ // If the type is not in the generated pool, then we can't possibly handle
308
+ // it.
309
+ if (type->file()->pool() != DescriptorPool::generated_pool()) return NULL;
310
+
311
+ // Apparently the file hasn't been registered yet. Let's do that now.
312
+ RegistrationFunc* registration_func =
313
+ FindPtrOrNull(file_map_, type->file()->name().c_str());
314
+ if (registration_func == NULL) {
315
+ GOOGLE_LOG(DFATAL) << "File appears to be in generated pool but wasn't "
316
+ "registered: " << type->file()->name();
317
+ return NULL;
318
+ }
319
+
320
+ WriterMutexLock lock(&mutex_);
321
+
322
+ // Check if another thread preempted us.
323
+ const Message* result = FindPtrOrNull(type_map_, type);
324
+ if (result == NULL) {
325
+ // Nope. OK, register everything.
326
+ registration_func(type->file()->name());
327
+ // Should be here now.
328
+ result = FindPtrOrNull(type_map_, type);
329
+ }
330
+
331
+ if (result == NULL) {
332
+ GOOGLE_LOG(DFATAL) << "Type appears to be in generated pool but wasn't "
333
+ << "registered: " << type->full_name();
334
+ }
335
+
336
+ return result;
337
+ }
338
+
339
+ } // namespace
340
+
341
+ MessageFactory* MessageFactory::generated_factory() {
342
+ return GeneratedMessageFactory::singleton();
343
+ }
344
+
345
+ void MessageFactory::InternalRegisterGeneratedFile(
346
+ const char* filename, void (*register_messages)(const string&)) {
347
+ GeneratedMessageFactory::singleton()->RegisterFile(filename,
348
+ register_messages);
349
+ }
350
+
351
+ void MessageFactory::InternalRegisterGeneratedMessage(
352
+ const Descriptor* descriptor, const Message* prototype) {
353
+ GeneratedMessageFactory::singleton()->RegisterType(descriptor, prototype);
354
+ }
355
+
356
+
357
+ } // namespace protobuf
358
+ } // namespace google