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.
- checksums.yaml +4 -4
- data/ext/protoc/Makefile.in +10 -13
- data/ext/protoc/extconf.rb +0 -1
- data/ext/protoc/protobuf/CHANGES.txt +593 -0
- data/ext/protoc/protobuf/CONTRIBUTORS.txt +93 -0
- data/ext/protoc/protobuf/INSTALL.txt +237 -0
- data/ext/protoc/protobuf/LICENSE +33 -0
- data/ext/protoc/protobuf/Makefile.am +267 -0
- data/ext/protoc/protobuf/README.md +167 -0
- data/ext/protoc/protobuf/autogen.sh +41 -0
- data/ext/protoc/protobuf/benchmarks/ProtoBench.java +203 -0
- data/ext/protoc/protobuf/benchmarks/google_message1.dat +0 -0
- data/ext/protoc/protobuf/benchmarks/google_message2.dat +0 -0
- data/ext/protoc/protobuf/benchmarks/google_size.proto +136 -0
- data/ext/protoc/protobuf/benchmarks/google_speed.proto +136 -0
- data/ext/protoc/protobuf/benchmarks/readme.txt +50 -0
- data/ext/protoc/protobuf/configure.ac +159 -0
- data/ext/protoc/protobuf/editors/README.txt +5 -0
- data/ext/protoc/protobuf/editors/proto.vim +105 -0
- data/ext/protoc/protobuf/editors/protobuf-mode.el +220 -0
- data/ext/protoc/protobuf/examples/AddPerson.java +95 -0
- data/ext/protoc/protobuf/examples/ListPeople.java +50 -0
- data/ext/protoc/protobuf/examples/Makefile +58 -0
- data/ext/protoc/protobuf/examples/README.txt +29 -0
- data/ext/protoc/protobuf/examples/add_person.cc +95 -0
- data/ext/protoc/protobuf/examples/add_person.py +58 -0
- data/ext/protoc/protobuf/examples/addressbook.proto +30 -0
- data/ext/protoc/protobuf/examples/list_people.cc +68 -0
- data/ext/protoc/protobuf/examples/list_people.py +38 -0
- data/ext/protoc/protobuf/generate_descriptor_proto.sh +33 -0
- data/ext/protoc/protobuf/java/README.txt +96 -0
- data/ext/protoc/protobuf/java/pom.xml +217 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/AbstractMessage.java +466 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/AbstractMessageLite.java +355 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/AbstractParser.java +253 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/BlockingRpcChannel.java +51 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/BlockingService.java +64 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/BoundedByteString.java +163 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ByteString.java +1022 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/CodedInputStream.java +1311 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/CodedOutputStream.java +1297 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Descriptors.java +2238 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/DynamicMessage.java +622 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Extension.java +96 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ExtensionRegistry.java +392 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ExtensionRegistryLite.java +185 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/FieldSet.java +907 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessage.java +2213 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java +949 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Internal.java +391 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/InvalidProtocolBufferException.java +122 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyField.java +154 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyFieldLite.java +176 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyStringArrayList.java +367 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LazyStringList.java +163 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/LiteralByteString.java +362 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Message.java +244 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageLite.java +320 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageLiteOrBuilder.java +60 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageOrBuilder.java +143 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/MessageReflection.java +931 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Parser.java +261 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ProtocolMessageEnum.java +58 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ProtocolStringList.java +48 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RepeatedFieldBuilder.java +696 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RopeByteString.java +957 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcCallback.java +47 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcChannel.java +71 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcController.java +118 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/RpcUtil.java +134 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Service.java +117 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/ServiceException.java +52 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/SingleFieldBuilder.java +241 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/SmallSortedMap.java +618 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/TextFormat.java +1984 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/UninitializedMessageException.java +99 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/UnknownFieldSet.java +995 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/UnmodifiableLazyStringList.java +205 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/Utf8.java +349 -0
- data/ext/protoc/protobuf/java/src/main/java/com/google/protobuf/WireFormat.java +163 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/AbstractMessageTest.java +527 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/BoundedByteStringTest.java +68 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ByteStringTest.java +759 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/CheckUtf8Test.java +141 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/CodedInputStreamTest.java +769 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/CodedOutputStreamTest.java +401 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/DeprecatedFieldTest.java +80 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/DescriptorsTest.java +735 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/DynamicMessageTest.java +326 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ForceFieldBuildersPreRun.java +48 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/GeneratedMessageTest.java +1515 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/IsValidUtf8Test.java +180 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/IsValidUtf8TestUtil.java +421 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyFieldLiteTest.java +134 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyFieldTest.java +121 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyMessageLiteTest.java +319 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyStringArrayListTest.java +174 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LazyStringEndToEndTest.java +143 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LiteEqualsAndHashTest.java +85 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LiteTest.java +148 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/LiteralByteStringTest.java +396 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/MessageTest.java +353 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/NestedBuildersTest.java +185 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ParserTest.java +381 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/RepeatedFieldBuilderTest.java +190 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/RopeByteStringSubstringTest.java +97 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/RopeByteStringTest.java +115 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/ServiceTest.java +320 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/SingleFieldBuilderTest.java +155 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/SmallSortedMapTest.java +420 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/TestBadIdentifiers.java +96 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/TestUtil.java +4124 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/TextFormatTest.java +994 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/UnknownFieldSetTest.java +653 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/UnmodifiableLazyStringListTest.java +227 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/WireFormatTest.java +606 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/lazy_fields_lite.proto +61 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/lite_equals_and_hash.proto +55 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/multiple_files_test.proto +77 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/nested_builders_test.proto +53 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/nested_extension.proto +46 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/nested_extension_lite.proto +48 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/non_nested_extension.proto +49 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/non_nested_extension_lite.proto +50 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/outer_class_name_test.proto +38 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/outer_class_name_test2.proto +42 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/outer_class_name_test3.proto +43 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_bad_identifiers.proto +157 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_check_utf8.proto +50 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_check_utf8_size.proto +51 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_custom_options.proto +43 -0
- data/ext/protoc/protobuf/java/src/test/java/com/google/protobuf/test_extra_interfaces.proto +60 -0
- data/ext/protoc/protobuf/m4/ac_system_extensions.m4 +37 -0
- data/ext/protoc/protobuf/m4/acx_check_suncc.m4 +75 -0
- data/ext/protoc/protobuf/m4/acx_pthread.m4 +397 -0
- data/ext/protoc/protobuf/m4/stl_hash.m4 +72 -0
- data/ext/protoc/protobuf/more_tests/Makefile +41 -0
- data/ext/protoc/protobuf/post_process_dist.sh +60 -0
- data/ext/protoc/protobuf/protobuf-lite.pc.in +13 -0
- data/ext/protoc/protobuf/protobuf.pc.in +14 -0
- data/ext/protoc/protobuf/python/README.txt +105 -0
- data/ext/protoc/protobuf/python/ez_setup.py +284 -0
- data/ext/protoc/protobuf/python/google/__init__.py +1 -0
- data/ext/protoc/protobuf/python/google/protobuf/__init__.py +0 -0
- data/ext/protoc/protobuf/python/google/protobuf/descriptor.py +849 -0
- data/ext/protoc/protobuf/python/google/protobuf/descriptor_database.py +137 -0
- data/ext/protoc/protobuf/python/google/protobuf/descriptor_pool.py +643 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/__init__.py +0 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/api_implementation.cc +139 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/api_implementation.py +89 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/api_implementation_default_test.py +63 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/containers.py +269 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/cpp_message.py +663 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/decoder.py +831 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_database_test.py +63 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_pool_test.py +564 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_pool_test1.proto +94 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_pool_test2.proto +70 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_python_test.py +54 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/descriptor_test.py +669 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/encoder.py +788 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/enum_type_wrapper.py +89 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/factory_test1.proto +57 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/factory_test2.proto +92 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/generator_test.py +343 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/message_factory_python_test.py +54 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/message_factory_test.py +131 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/message_listener.py +78 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/message_python_test.py +54 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/message_test.py +681 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/missing_enum_values.proto +50 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/more_extensions.proto +58 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/more_extensions_dynamic.proto +49 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/more_messages.proto +51 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/python_message.py +1251 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/reflection_test.py +2934 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/service_reflection_test.py +136 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/symbol_database_test.py +120 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/test_bad_identifiers.proto +52 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/test_util.py +662 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/text_encoding_test.py +68 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/text_format_test.py +743 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/type_checkers.py +328 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/unknown_fields_test.py +231 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/wire_format.py +268 -0
- data/ext/protoc/protobuf/python/google/protobuf/internal/wire_format_test.py +253 -0
- data/ext/protoc/protobuf/python/google/protobuf/message.py +284 -0
- data/ext/protoc/protobuf/python/google/protobuf/message_factory.py +155 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/README +6 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/__init__.py +0 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/cpp_message.py +61 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/descriptor.cc +357 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/descriptor.h +96 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/descriptor_cpp2_test.py +58 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/extension_dict.cc +338 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/extension_dict.h +123 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/message.cc +2561 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/message.h +305 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/message_factory_cpp2_test.py +56 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/proto2_api_test.proto +38 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/python.proto +66 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/python_protobuf.h +57 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/reflection_cpp2_generated_test.py +94 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_composite_container.cc +763 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_composite_container.h +172 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_scalar_container.cc +825 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/repeated_scalar_container.h +112 -0
- data/ext/protoc/protobuf/python/google/protobuf/pyext/scoped_pyobject_ptr.h +95 -0
- data/ext/protoc/protobuf/python/google/protobuf/reflection.py +205 -0
- data/ext/protoc/protobuf/python/google/protobuf/service.py +226 -0
- data/ext/protoc/protobuf/python/google/protobuf/service_reflection.py +284 -0
- data/ext/protoc/protobuf/python/google/protobuf/symbol_database.py +185 -0
- data/ext/protoc/protobuf/python/google/protobuf/text_encoding.py +110 -0
- data/ext/protoc/protobuf/python/google/protobuf/text_format.py +873 -0
- data/ext/protoc/protobuf/python/mox.py +1401 -0
- data/ext/protoc/protobuf/python/setup.py +201 -0
- data/ext/protoc/protobuf/python/stubout.py +140 -0
- data/ext/protoc/protobuf/src/Makefile.am +418 -0
- data/ext/protoc/protobuf/src/google/protobuf/SEBS +240 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/code_generator.cc +84 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/code_generator.h +145 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/command_line_interface.cc +1603 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/command_line_interface.h +378 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/command_line_interface_unittest.cc +1654 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_bootstrap_unittest.cc +158 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc +288 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum.h +103 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc +431 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.h +122 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc +210 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_extension.h +86 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc +166 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_field.h +185 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc +665 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_file.h +99 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc +125 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_generator.h +72 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc +494 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.h +206 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc +2645 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message.h +175 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc +375 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.h +121 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_options.h +58 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_plugin_unittest.cc +123 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc +451 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.h +123 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc +334 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_service.h +118 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc +642 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.h +127 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_test_bad_identifiers.proto +132 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.cc +2074 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/cpp/cpp_unittest.h +51 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/importer.cc +480 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/importer.h +317 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/importer_unittest.cc +617 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_context.cc +195 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_context.h +95 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc +233 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_doc_comment.h +69 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_doc_comment_unittest.cc +67 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum.cc +333 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum.h +99 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum_field.cc +778 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_enum_field.h +158 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_extension.cc +207 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_extension.h +109 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_field.cc +213 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_field.h +162 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_file.cc +534 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_file.h +115 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator.cc +158 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator.h +72 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc +77 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_generator_factory.h +101 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_helpers.cc +737 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_helpers.h +322 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field.cc +826 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_lazy_message_field.h +121 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message.cc +1666 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message.h +140 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message_field.cc +1343 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_message_field.h +173 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc +266 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_name_resolver.h +124 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_plugin_unittest.cc +124 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc +877 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_primitive_field.h +160 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_service.cc +473 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_service.h +135 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc +201 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.h +90 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_string_field.cc +1056 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/java/java_string_field.h +160 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/main.cc +61 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/mock_code_generator.cc +240 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/mock_code_generator.h +117 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/package_info.h +64 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/parser.cc +1750 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/parser.h +522 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/parser_unittest.cc +2612 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.cc +163 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.h +72 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.pb.cc +1148 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.pb.h +897 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/plugin.proto +147 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/python/python_generator.cc +1262 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/python/python_generator.h +166 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/python/python_plugin_unittest.cc +118 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/subprocess.cc +463 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/subprocess.h +108 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/test_plugin.cc +51 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/zip_output_unittest.sh +91 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/zip_writer.cc +218 -0
- data/ext/protoc/protobuf/src/google/protobuf/compiler/zip_writer.h +93 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor.cc +5420 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor.h +1691 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor.pb.cc +9135 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor.pb.h +6761 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor.proto +687 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor_database.cc +543 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor_database.h +369 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor_database_unittest.cc +748 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor_pb2_test.py +54 -0
- data/ext/protoc/protobuf/src/google/protobuf/descriptor_unittest.cc +5501 -0
- data/ext/protoc/protobuf/src/google/protobuf/dynamic_message.cc +764 -0
- data/ext/protoc/protobuf/src/google/protobuf/dynamic_message.h +148 -0
- data/ext/protoc/protobuf/src/google/protobuf/dynamic_message_unittest.cc +230 -0
- data/ext/protoc/protobuf/src/google/protobuf/extension_set.cc +1663 -0
- data/ext/protoc/protobuf/src/google/protobuf/extension_set.h +1234 -0
- data/ext/protoc/protobuf/src/google/protobuf/extension_set_heavy.cc +734 -0
- data/ext/protoc/protobuf/src/google/protobuf/extension_set_unittest.cc +1095 -0
- data/ext/protoc/protobuf/src/google/protobuf/generated_enum_reflection.h +91 -0
- data/ext/protoc/protobuf/src/google/protobuf/generated_message_reflection.cc +1683 -0
- data/ext/protoc/protobuf/src/google/protobuf/generated_message_reflection.h +504 -0
- data/ext/protoc/protobuf/src/google/protobuf/generated_message_reflection_unittest.cc +795 -0
- data/ext/protoc/protobuf/src/google/protobuf/generated_message_util.cc +65 -0
- data/ext/protoc/protobuf/src/google/protobuf/generated_message_util.h +113 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream.cc +914 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream.h +1220 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream_inl.h +69 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/coded_stream_unittest.cc +1378 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/gzip_stream.cc +326 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/gzip_stream.h +209 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/gzip_stream_unittest.sh +44 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/package_info.h +54 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/printer.cc +198 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/printer.h +136 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/printer_unittest.cc +285 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/strtod.cc +113 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/strtod.h +50 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/tokenizer.cc +1127 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/tokenizer.h +402 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/tokenizer_unittest.cc +999 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream.cc +57 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream.h +248 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc +473 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl.h +358 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc +405 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h +354 -0
- data/ext/protoc/protobuf/src/google/protobuf/io/zero_copy_stream_unittest.cc +965 -0
- data/ext/protoc/protobuf/src/google/protobuf/lite_unittest.cc +350 -0
- data/ext/protoc/protobuf/src/google/protobuf/message.cc +358 -0
- data/ext/protoc/protobuf/src/google/protobuf/message.h +866 -0
- data/ext/protoc/protobuf/src/google/protobuf/message_lite.cc +335 -0
- data/ext/protoc/protobuf/src/google/protobuf/message_lite.h +247 -0
- data/ext/protoc/protobuf/src/google/protobuf/message_unittest.cc +427 -0
- data/ext/protoc/protobuf/src/google/protobuf/package_info.h +64 -0
- data/ext/protoc/protobuf/src/google/protobuf/reflection_ops.cc +269 -0
- data/ext/protoc/protobuf/src/google/protobuf/reflection_ops.h +81 -0
- data/ext/protoc/protobuf/src/google/protobuf/reflection_ops_unittest.cc +475 -0
- data/ext/protoc/protobuf/src/google/protobuf/repeated_field.cc +87 -0
- data/ext/protoc/protobuf/src/google/protobuf/repeated_field.h +1603 -0
- data/ext/protoc/protobuf/src/google/protobuf/repeated_field_reflection_unittest.cc +195 -0
- data/ext/protoc/protobuf/src/google/protobuf/repeated_field_unittest.cc +1442 -0
- data/ext/protoc/protobuf/src/google/protobuf/service.cc +46 -0
- data/ext/protoc/protobuf/src/google/protobuf/service.h +291 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops.h +227 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_arm64_gcc.h +325 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_gcc.h +151 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_arm_qnx.h +146 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_atomicword_compat.h +122 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_generic_gcc.h +137 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_macosx.h +225 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_mips_gcc.h +313 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_pnacl.h +73 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_solaris.h +188 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_tsan.h +219 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_gcc.cc +137 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_gcc.h +293 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_msvc.cc +112 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/atomicops_internals_x86_msvc.h +150 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/common.cc +395 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/common.h +1226 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/common_unittest.cc +357 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/hash.h +232 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/map_util.h +771 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/once.cc +99 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/once.h +166 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/once_unittest.cc +253 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/platform_macros.h +103 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/shared_ptr.h +470 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/stl_util.h +121 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/stringprintf.cc +175 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/stringprintf.h +76 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/stringprintf_unittest.cc +152 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/structurally_valid.cc +536 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/structurally_valid_unittest.cc +40 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/strutil.cc +1279 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/strutil.h +562 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/strutil_unittest.cc +73 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/substitute.cc +134 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/substitute.h +170 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/template_util.h +138 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/template_util_unittest.cc +130 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/type_traits.h +336 -0
- data/ext/protoc/protobuf/src/google/protobuf/stubs/type_traits_unittest.cc +628 -0
- data/ext/protoc/protobuf/src/google/protobuf/test_util.cc +3345 -0
- data/ext/protoc/protobuf/src/google/protobuf/test_util.h +215 -0
- data/ext/protoc/protobuf/src/google/protobuf/test_util_lite.cc +1585 -0
- data/ext/protoc/protobuf/src/google/protobuf/test_util_lite.h +101 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/bad_utf8_string +1 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/golden_message +0 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/golden_message_oneof_implemented +0 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/golden_packed_fields_message +0 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data.txt +134 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data_oneof_implemented.txt +129 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data_pointy.txt +134 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_data_pointy_oneof.txt +129 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_extensions_data.txt +134 -0
- data/ext/protoc/protobuf/src/google/protobuf/testdata/text_format_unittest_extensions_data_pointy.txt +134 -0
- data/ext/protoc/protobuf/src/google/protobuf/testing/file.cc +194 -0
- data/ext/protoc/protobuf/src/google/protobuf/testing/file.h +97 -0
- data/ext/protoc/protobuf/src/google/protobuf/testing/googletest.cc +255 -0
- data/ext/protoc/protobuf/src/google/protobuf/testing/googletest.h +102 -0
- data/ext/protoc/protobuf/src/google/protobuf/testing/zcgunzip.cc +73 -0
- data/ext/protoc/protobuf/src/google/protobuf/testing/zcgzip.cc +79 -0
- data/ext/protoc/protobuf/src/google/protobuf/text_format.cc +1746 -0
- data/ext/protoc/protobuf/src/google/protobuf/text_format.h +473 -0
- data/ext/protoc/protobuf/src/google/protobuf/text_format_unittest.cc +1479 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest.proto +861 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_custom_options.proto +393 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_embed_optimize_for.proto +50 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_empty.proto +37 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_enormous_descriptor.proto +1046 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_import.proto +64 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_import_lite.proto +51 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_import_public.proto +40 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_import_public_lite.proto +42 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_lite.proto +384 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_lite_imports_nonlite.proto +43 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_mset.proto +83 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_no_generic_services.proto +53 -0
- data/ext/protoc/protobuf/src/google/protobuf/unittest_optimize_for.proto +66 -0
- data/ext/protoc/protobuf/src/google/protobuf/unknown_field_set.cc +265 -0
- data/ext/protoc/protobuf/src/google/protobuf/unknown_field_set.h +318 -0
- data/ext/protoc/protobuf/src/google/protobuf/unknown_field_set_unittest.cc +599 -0
- data/ext/protoc/protobuf/src/google/protobuf/wire_format.cc +1101 -0
- data/ext/protoc/protobuf/src/google/protobuf/wire_format.h +336 -0
- data/ext/protoc/protobuf/src/google/protobuf/wire_format_lite.cc +471 -0
- data/ext/protoc/protobuf/src/google/protobuf/wire_format_lite.h +661 -0
- data/ext/protoc/protobuf/src/google/protobuf/wire_format_lite_inl.h +860 -0
- data/ext/protoc/protobuf/src/google/protobuf/wire_format_unittest.cc +1120 -0
- data/ext/protoc/protobuf/src/solaris/libstdc++.la +51 -0
- data/ext/protoc/protobuf/vsprojects/config.h +29 -0
- data/ext/protoc/protobuf/vsprojects/convert2008to2005.sh +20 -0
- data/ext/protoc/protobuf/vsprojects/extract_includes.bat +50 -0
- data/ext/protoc/protobuf/vsprojects/libprotobuf-lite.vcproj +302 -0
- data/ext/protoc/protobuf/vsprojects/libprotobuf.vcproj +470 -0
- data/ext/protoc/protobuf/vsprojects/libprotoc.vcproj +466 -0
- data/ext/protoc/protobuf/vsprojects/lite-test.vcproj +305 -0
- data/ext/protoc/protobuf/vsprojects/protobuf.sln +92 -0
- data/ext/protoc/protobuf/vsprojects/protoc.vcproj +192 -0
- data/ext/protoc/protobuf/vsprojects/readme.txt +114 -0
- data/ext/protoc/protobuf/vsprojects/test_plugin.vcproj +209 -0
- data/ext/protoc/protobuf/vsprojects/tests.vcproj +681 -0
- data/lib/protoc/version.rb +1 -1
- metadata +480 -3
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
|
2
|
+
// Copyright 2012 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
|
+
// The compilation of extension_set.cc fails when windows.h is included.
|
|
32
|
+
// Therefore we move the code depending on windows.h to this separate cc file.
|
|
33
|
+
|
|
34
|
+
// Don't compile this file for people not concerned about thread safety.
|
|
35
|
+
#ifndef GOOGLE_PROTOBUF_NO_THREAD_SAFETY
|
|
36
|
+
|
|
37
|
+
#include <google/protobuf/stubs/atomicops.h>
|
|
38
|
+
|
|
39
|
+
#ifdef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_X86_MSVC_H_
|
|
40
|
+
|
|
41
|
+
#include <windows.h>
|
|
42
|
+
|
|
43
|
+
namespace google {
|
|
44
|
+
namespace protobuf {
|
|
45
|
+
namespace internal {
|
|
46
|
+
|
|
47
|
+
inline void MemoryBarrier() {
|
|
48
|
+
// We use MemoryBarrier from WinNT.h
|
|
49
|
+
::MemoryBarrier();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
|
|
53
|
+
Atomic32 old_value,
|
|
54
|
+
Atomic32 new_value) {
|
|
55
|
+
LONG result = InterlockedCompareExchange(
|
|
56
|
+
reinterpret_cast<volatile LONG*>(ptr),
|
|
57
|
+
static_cast<LONG>(new_value),
|
|
58
|
+
static_cast<LONG>(old_value));
|
|
59
|
+
return static_cast<Atomic32>(result);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
Atomic32 NoBarrier_AtomicExchange(volatile Atomic32* ptr,
|
|
63
|
+
Atomic32 new_value) {
|
|
64
|
+
LONG result = InterlockedExchange(
|
|
65
|
+
reinterpret_cast<volatile LONG*>(ptr),
|
|
66
|
+
static_cast<LONG>(new_value));
|
|
67
|
+
return static_cast<Atomic32>(result);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
Atomic32 Barrier_AtomicIncrement(volatile Atomic32* ptr,
|
|
71
|
+
Atomic32 increment) {
|
|
72
|
+
return InterlockedExchangeAdd(
|
|
73
|
+
reinterpret_cast<volatile LONG*>(ptr),
|
|
74
|
+
static_cast<LONG>(increment)) + increment;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
#if defined(_WIN64)
|
|
78
|
+
|
|
79
|
+
// 64-bit low-level operations on 64-bit platform.
|
|
80
|
+
|
|
81
|
+
Atomic64 NoBarrier_CompareAndSwap(volatile Atomic64* ptr,
|
|
82
|
+
Atomic64 old_value,
|
|
83
|
+
Atomic64 new_value) {
|
|
84
|
+
PVOID result = InterlockedCompareExchangePointer(
|
|
85
|
+
reinterpret_cast<volatile PVOID*>(ptr),
|
|
86
|
+
reinterpret_cast<PVOID>(new_value), reinterpret_cast<PVOID>(old_value));
|
|
87
|
+
return reinterpret_cast<Atomic64>(result);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
Atomic64 NoBarrier_AtomicExchange(volatile Atomic64* ptr,
|
|
91
|
+
Atomic64 new_value) {
|
|
92
|
+
PVOID result = InterlockedExchangePointer(
|
|
93
|
+
reinterpret_cast<volatile PVOID*>(ptr),
|
|
94
|
+
reinterpret_cast<PVOID>(new_value));
|
|
95
|
+
return reinterpret_cast<Atomic64>(result);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
Atomic64 Barrier_AtomicIncrement(volatile Atomic64* ptr,
|
|
99
|
+
Atomic64 increment) {
|
|
100
|
+
return InterlockedExchangeAdd64(
|
|
101
|
+
reinterpret_cast<volatile LONGLONG*>(ptr),
|
|
102
|
+
static_cast<LONGLONG>(increment)) + increment;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
#endif // defined(_WIN64)
|
|
106
|
+
|
|
107
|
+
} // namespace internal
|
|
108
|
+
} // namespace protobuf
|
|
109
|
+
} // namespace google
|
|
110
|
+
|
|
111
|
+
#endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_X86_MSVC_H_
|
|
112
|
+
#endif // GOOGLE_PROTOBUF_NO_THREAD_SAFETY
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
|
2
|
+
// Copyright 2012 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
|
+
// This file is an internal atomic implementation, use atomicops.h instead.
|
|
32
|
+
|
|
33
|
+
#ifndef GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_X86_MSVC_H_
|
|
34
|
+
#define GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_X86_MSVC_H_
|
|
35
|
+
|
|
36
|
+
namespace google {
|
|
37
|
+
namespace protobuf {
|
|
38
|
+
namespace internal {
|
|
39
|
+
|
|
40
|
+
inline Atomic32 NoBarrier_AtomicIncrement(volatile Atomic32* ptr,
|
|
41
|
+
Atomic32 increment) {
|
|
42
|
+
return Barrier_AtomicIncrement(ptr, increment);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
#if !(defined(_MSC_VER) && _MSC_VER >= 1400)
|
|
46
|
+
#error "We require at least vs2005 for MemoryBarrier"
|
|
47
|
+
#endif
|
|
48
|
+
|
|
49
|
+
inline Atomic32 Acquire_CompareAndSwap(volatile Atomic32* ptr,
|
|
50
|
+
Atomic32 old_value,
|
|
51
|
+
Atomic32 new_value) {
|
|
52
|
+
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
inline Atomic32 Release_CompareAndSwap(volatile Atomic32* ptr,
|
|
56
|
+
Atomic32 old_value,
|
|
57
|
+
Atomic32 new_value) {
|
|
58
|
+
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
inline void NoBarrier_Store(volatile Atomic32* ptr, Atomic32 value) {
|
|
62
|
+
*ptr = value;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
inline void Acquire_Store(volatile Atomic32* ptr, Atomic32 value) {
|
|
66
|
+
NoBarrier_AtomicExchange(ptr, value);
|
|
67
|
+
// acts as a barrier in this implementation
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
inline void Release_Store(volatile Atomic32* ptr, Atomic32 value) {
|
|
71
|
+
*ptr = value; // works w/o barrier for current Intel chips as of June 2005
|
|
72
|
+
// See comments in Atomic64 version of Release_Store() below.
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
inline Atomic32 NoBarrier_Load(volatile const Atomic32* ptr) {
|
|
76
|
+
return *ptr;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
inline Atomic32 Acquire_Load(volatile const Atomic32* ptr) {
|
|
80
|
+
Atomic32 value = *ptr;
|
|
81
|
+
return value;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
inline Atomic32 Release_Load(volatile const Atomic32* ptr) {
|
|
85
|
+
MemoryBarrier();
|
|
86
|
+
return *ptr;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
#if defined(_WIN64)
|
|
90
|
+
|
|
91
|
+
// 64-bit low-level operations on 64-bit platform.
|
|
92
|
+
|
|
93
|
+
inline Atomic64 NoBarrier_AtomicIncrement(volatile Atomic64* ptr,
|
|
94
|
+
Atomic64 increment) {
|
|
95
|
+
return Barrier_AtomicIncrement(ptr, increment);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
inline void NoBarrier_Store(volatile Atomic64* ptr, Atomic64 value) {
|
|
99
|
+
*ptr = value;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
inline void Acquire_Store(volatile Atomic64* ptr, Atomic64 value) {
|
|
103
|
+
NoBarrier_AtomicExchange(ptr, value);
|
|
104
|
+
// acts as a barrier in this implementation
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
inline void Release_Store(volatile Atomic64* ptr, Atomic64 value) {
|
|
108
|
+
*ptr = value; // works w/o barrier for current Intel chips as of June 2005
|
|
109
|
+
|
|
110
|
+
// When new chips come out, check:
|
|
111
|
+
// IA-32 Intel Architecture Software Developer's Manual, Volume 3:
|
|
112
|
+
// System Programming Guide, Chatper 7: Multiple-processor management,
|
|
113
|
+
// Section 7.2, Memory Ordering.
|
|
114
|
+
// Last seen at:
|
|
115
|
+
// http://developer.intel.com/design/pentium4/manuals/index_new.htm
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
inline Atomic64 NoBarrier_Load(volatile const Atomic64* ptr) {
|
|
119
|
+
return *ptr;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
inline Atomic64 Acquire_Load(volatile const Atomic64* ptr) {
|
|
123
|
+
Atomic64 value = *ptr;
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
inline Atomic64 Release_Load(volatile const Atomic64* ptr) {
|
|
128
|
+
MemoryBarrier();
|
|
129
|
+
return *ptr;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
inline Atomic64 Acquire_CompareAndSwap(volatile Atomic64* ptr,
|
|
133
|
+
Atomic64 old_value,
|
|
134
|
+
Atomic64 new_value) {
|
|
135
|
+
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
inline Atomic64 Release_CompareAndSwap(volatile Atomic64* ptr,
|
|
139
|
+
Atomic64 old_value,
|
|
140
|
+
Atomic64 new_value) {
|
|
141
|
+
return NoBarrier_CompareAndSwap(ptr, old_value, new_value);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
#endif // defined(_WIN64)
|
|
145
|
+
|
|
146
|
+
} // namespace internal
|
|
147
|
+
} // namespace protobuf
|
|
148
|
+
} // namespace google
|
|
149
|
+
|
|
150
|
+
#endif // GOOGLE_PROTOBUF_ATOMICOPS_INTERNALS_X86_MSVC_H_
|
|
@@ -0,0 +1,395 @@
|
|
|
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 <google/protobuf/stubs/common.h>
|
|
34
|
+
#include <google/protobuf/stubs/once.h>
|
|
35
|
+
#include <stdio.h>
|
|
36
|
+
#include <errno.h>
|
|
37
|
+
#include <vector>
|
|
38
|
+
|
|
39
|
+
#include "config.h"
|
|
40
|
+
|
|
41
|
+
#ifdef _WIN32
|
|
42
|
+
#define WIN32_LEAN_AND_MEAN // We only need minimal includes
|
|
43
|
+
#include <windows.h>
|
|
44
|
+
#define snprintf _snprintf // see comment in strutil.cc
|
|
45
|
+
#elif defined(HAVE_PTHREAD)
|
|
46
|
+
#include <pthread.h>
|
|
47
|
+
#else
|
|
48
|
+
#error "No suitable threading library available."
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
namespace google {
|
|
52
|
+
namespace protobuf {
|
|
53
|
+
|
|
54
|
+
namespace internal {
|
|
55
|
+
|
|
56
|
+
void VerifyVersion(int headerVersion,
|
|
57
|
+
int minLibraryVersion,
|
|
58
|
+
const char* filename) {
|
|
59
|
+
if (GOOGLE_PROTOBUF_VERSION < minLibraryVersion) {
|
|
60
|
+
// Library is too old for headers.
|
|
61
|
+
GOOGLE_LOG(FATAL)
|
|
62
|
+
<< "This program requires version " << VersionString(minLibraryVersion)
|
|
63
|
+
<< " of the Protocol Buffer runtime library, but the installed version "
|
|
64
|
+
"is " << VersionString(GOOGLE_PROTOBUF_VERSION) << ". Please update "
|
|
65
|
+
"your library. If you compiled the program yourself, make sure that "
|
|
66
|
+
"your headers are from the same version of Protocol Buffers as your "
|
|
67
|
+
"link-time library. (Version verification failed in \""
|
|
68
|
+
<< filename << "\".)";
|
|
69
|
+
}
|
|
70
|
+
if (headerVersion < kMinHeaderVersionForLibrary) {
|
|
71
|
+
// Headers are too old for library.
|
|
72
|
+
GOOGLE_LOG(FATAL)
|
|
73
|
+
<< "This program was compiled against version "
|
|
74
|
+
<< VersionString(headerVersion) << " of the Protocol Buffer runtime "
|
|
75
|
+
"library, which is not compatible with the installed version ("
|
|
76
|
+
<< VersionString(GOOGLE_PROTOBUF_VERSION) << "). Contact the program "
|
|
77
|
+
"author for an update. If you compiled the program yourself, make "
|
|
78
|
+
"sure that your headers are from the same version of Protocol Buffers "
|
|
79
|
+
"as your link-time library. (Version verification failed in \""
|
|
80
|
+
<< filename << "\".)";
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
string VersionString(int version) {
|
|
85
|
+
int major = version / 1000000;
|
|
86
|
+
int minor = (version / 1000) % 1000;
|
|
87
|
+
int micro = version % 1000;
|
|
88
|
+
|
|
89
|
+
// 128 bytes should always be enough, but we use snprintf() anyway to be
|
|
90
|
+
// safe.
|
|
91
|
+
char buffer[128];
|
|
92
|
+
snprintf(buffer, sizeof(buffer), "%d.%d.%d", major, minor, micro);
|
|
93
|
+
|
|
94
|
+
// Guard against broken MSVC snprintf().
|
|
95
|
+
buffer[sizeof(buffer)-1] = '\0';
|
|
96
|
+
|
|
97
|
+
return buffer;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
} // namespace internal
|
|
101
|
+
|
|
102
|
+
// ===================================================================
|
|
103
|
+
// emulates google3/base/logging.cc
|
|
104
|
+
|
|
105
|
+
namespace internal {
|
|
106
|
+
|
|
107
|
+
void DefaultLogHandler(LogLevel level, const char* filename, int line,
|
|
108
|
+
const string& message) {
|
|
109
|
+
static const char* level_names[] = { "INFO", "WARNING", "ERROR", "FATAL" };
|
|
110
|
+
|
|
111
|
+
// We use fprintf() instead of cerr because we want this to work at static
|
|
112
|
+
// initialization time.
|
|
113
|
+
fprintf(stderr, "[libprotobuf %s %s:%d] %s\n",
|
|
114
|
+
level_names[level], filename, line, message.c_str());
|
|
115
|
+
fflush(stderr); // Needed on MSVC.
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
void NullLogHandler(LogLevel /* level */, const char* /* filename */,
|
|
119
|
+
int /* line */, const string& /* message */) {
|
|
120
|
+
// Nothing.
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
static LogHandler* log_handler_ = &DefaultLogHandler;
|
|
124
|
+
static int log_silencer_count_ = 0;
|
|
125
|
+
|
|
126
|
+
static Mutex* log_silencer_count_mutex_ = NULL;
|
|
127
|
+
GOOGLE_PROTOBUF_DECLARE_ONCE(log_silencer_count_init_);
|
|
128
|
+
|
|
129
|
+
void DeleteLogSilencerCount() {
|
|
130
|
+
delete log_silencer_count_mutex_;
|
|
131
|
+
log_silencer_count_mutex_ = NULL;
|
|
132
|
+
}
|
|
133
|
+
void InitLogSilencerCount() {
|
|
134
|
+
log_silencer_count_mutex_ = new Mutex;
|
|
135
|
+
OnShutdown(&DeleteLogSilencerCount);
|
|
136
|
+
}
|
|
137
|
+
void InitLogSilencerCountOnce() {
|
|
138
|
+
GoogleOnceInit(&log_silencer_count_init_, &InitLogSilencerCount);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
LogMessage& LogMessage::operator<<(const string& value) {
|
|
142
|
+
message_ += value;
|
|
143
|
+
return *this;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
LogMessage& LogMessage::operator<<(const char* value) {
|
|
147
|
+
message_ += value;
|
|
148
|
+
return *this;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Since this is just for logging, we don't care if the current locale changes
|
|
152
|
+
// the results -- in fact, we probably prefer that. So we use snprintf()
|
|
153
|
+
// instead of Simple*toa().
|
|
154
|
+
#undef DECLARE_STREAM_OPERATOR
|
|
155
|
+
#define DECLARE_STREAM_OPERATOR(TYPE, FORMAT) \
|
|
156
|
+
LogMessage& LogMessage::operator<<(TYPE value) { \
|
|
157
|
+
/* 128 bytes should be big enough for any of the primitive */ \
|
|
158
|
+
/* values which we print with this, but well use snprintf() */ \
|
|
159
|
+
/* anyway to be extra safe. */ \
|
|
160
|
+
char buffer[128]; \
|
|
161
|
+
snprintf(buffer, sizeof(buffer), FORMAT, value); \
|
|
162
|
+
/* Guard against broken MSVC snprintf(). */ \
|
|
163
|
+
buffer[sizeof(buffer)-1] = '\0'; \
|
|
164
|
+
message_ += buffer; \
|
|
165
|
+
return *this; \
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
DECLARE_STREAM_OPERATOR(char , "%c" )
|
|
169
|
+
DECLARE_STREAM_OPERATOR(int , "%d" )
|
|
170
|
+
DECLARE_STREAM_OPERATOR(uint , "%u" )
|
|
171
|
+
DECLARE_STREAM_OPERATOR(long , "%ld")
|
|
172
|
+
DECLARE_STREAM_OPERATOR(unsigned long, "%lu")
|
|
173
|
+
DECLARE_STREAM_OPERATOR(double , "%g" )
|
|
174
|
+
#undef DECLARE_STREAM_OPERATOR
|
|
175
|
+
|
|
176
|
+
LogMessage::LogMessage(LogLevel level, const char* filename, int line)
|
|
177
|
+
: level_(level), filename_(filename), line_(line) {}
|
|
178
|
+
LogMessage::~LogMessage() {}
|
|
179
|
+
|
|
180
|
+
void LogMessage::Finish() {
|
|
181
|
+
bool suppress = false;
|
|
182
|
+
|
|
183
|
+
if (level_ != LOGLEVEL_FATAL) {
|
|
184
|
+
InitLogSilencerCountOnce();
|
|
185
|
+
MutexLock lock(log_silencer_count_mutex_);
|
|
186
|
+
suppress = log_silencer_count_ > 0;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
if (!suppress) {
|
|
190
|
+
log_handler_(level_, filename_, line_, message_);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if (level_ == LOGLEVEL_FATAL) {
|
|
194
|
+
#if PROTOBUF_USE_EXCEPTIONS
|
|
195
|
+
throw FatalException(filename_, line_, message_);
|
|
196
|
+
#else
|
|
197
|
+
abort();
|
|
198
|
+
#endif
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
void LogFinisher::operator=(LogMessage& other) {
|
|
203
|
+
other.Finish();
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
} // namespace internal
|
|
207
|
+
|
|
208
|
+
LogHandler* SetLogHandler(LogHandler* new_func) {
|
|
209
|
+
LogHandler* old = internal::log_handler_;
|
|
210
|
+
if (old == &internal::NullLogHandler) {
|
|
211
|
+
old = NULL;
|
|
212
|
+
}
|
|
213
|
+
if (new_func == NULL) {
|
|
214
|
+
internal::log_handler_ = &internal::NullLogHandler;
|
|
215
|
+
} else {
|
|
216
|
+
internal::log_handler_ = new_func;
|
|
217
|
+
}
|
|
218
|
+
return old;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
LogSilencer::LogSilencer() {
|
|
222
|
+
internal::InitLogSilencerCountOnce();
|
|
223
|
+
MutexLock lock(internal::log_silencer_count_mutex_);
|
|
224
|
+
++internal::log_silencer_count_;
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
LogSilencer::~LogSilencer() {
|
|
228
|
+
internal::InitLogSilencerCountOnce();
|
|
229
|
+
MutexLock lock(internal::log_silencer_count_mutex_);
|
|
230
|
+
--internal::log_silencer_count_;
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
// ===================================================================
|
|
234
|
+
// emulates google3/base/callback.cc
|
|
235
|
+
|
|
236
|
+
Closure::~Closure() {}
|
|
237
|
+
|
|
238
|
+
namespace internal { FunctionClosure0::~FunctionClosure0() {} }
|
|
239
|
+
|
|
240
|
+
void DoNothing() {}
|
|
241
|
+
|
|
242
|
+
// ===================================================================
|
|
243
|
+
// emulates google3/base/mutex.cc
|
|
244
|
+
|
|
245
|
+
#ifdef _WIN32
|
|
246
|
+
|
|
247
|
+
struct Mutex::Internal {
|
|
248
|
+
CRITICAL_SECTION mutex;
|
|
249
|
+
#ifndef NDEBUG
|
|
250
|
+
// Used only to implement AssertHeld().
|
|
251
|
+
DWORD thread_id;
|
|
252
|
+
#endif
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
Mutex::Mutex()
|
|
256
|
+
: mInternal(new Internal) {
|
|
257
|
+
InitializeCriticalSection(&mInternal->mutex);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
Mutex::~Mutex() {
|
|
261
|
+
DeleteCriticalSection(&mInternal->mutex);
|
|
262
|
+
delete mInternal;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
void Mutex::Lock() {
|
|
266
|
+
EnterCriticalSection(&mInternal->mutex);
|
|
267
|
+
#ifndef NDEBUG
|
|
268
|
+
mInternal->thread_id = GetCurrentThreadId();
|
|
269
|
+
#endif
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
void Mutex::Unlock() {
|
|
273
|
+
#ifndef NDEBUG
|
|
274
|
+
mInternal->thread_id = 0;
|
|
275
|
+
#endif
|
|
276
|
+
LeaveCriticalSection(&mInternal->mutex);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
void Mutex::AssertHeld() {
|
|
280
|
+
#ifndef NDEBUG
|
|
281
|
+
GOOGLE_DCHECK_EQ(mInternal->thread_id, GetCurrentThreadId());
|
|
282
|
+
#endif
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
#elif defined(HAVE_PTHREAD)
|
|
286
|
+
|
|
287
|
+
struct Mutex::Internal {
|
|
288
|
+
pthread_mutex_t mutex;
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
Mutex::Mutex()
|
|
292
|
+
: mInternal(new Internal) {
|
|
293
|
+
pthread_mutex_init(&mInternal->mutex, NULL);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
Mutex::~Mutex() {
|
|
297
|
+
pthread_mutex_destroy(&mInternal->mutex);
|
|
298
|
+
delete mInternal;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
void Mutex::Lock() {
|
|
302
|
+
int result = pthread_mutex_lock(&mInternal->mutex);
|
|
303
|
+
if (result != 0) {
|
|
304
|
+
GOOGLE_LOG(FATAL) << "pthread_mutex_lock: " << strerror(result);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
void Mutex::Unlock() {
|
|
309
|
+
int result = pthread_mutex_unlock(&mInternal->mutex);
|
|
310
|
+
if (result != 0) {
|
|
311
|
+
GOOGLE_LOG(FATAL) << "pthread_mutex_unlock: " << strerror(result);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
void Mutex::AssertHeld() {
|
|
316
|
+
// pthreads dosn't provide a way to check which thread holds the mutex.
|
|
317
|
+
// TODO(kenton): Maybe keep track of locking thread ID like with WIN32?
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
#endif
|
|
321
|
+
|
|
322
|
+
// ===================================================================
|
|
323
|
+
// emulates google3/util/endian/endian.h
|
|
324
|
+
//
|
|
325
|
+
// TODO(xiaofeng): PROTOBUF_LITTLE_ENDIAN is unfortunately defined in
|
|
326
|
+
// google/protobuf/io/coded_stream.h and therefore can not be used here.
|
|
327
|
+
// Maybe move that macro definition here in the furture.
|
|
328
|
+
uint32 ghtonl(uint32 x) {
|
|
329
|
+
union {
|
|
330
|
+
uint32 result;
|
|
331
|
+
uint8 result_array[4];
|
|
332
|
+
};
|
|
333
|
+
result_array[0] = static_cast<uint8>(x >> 24);
|
|
334
|
+
result_array[1] = static_cast<uint8>((x >> 16) & 0xFF);
|
|
335
|
+
result_array[2] = static_cast<uint8>((x >> 8) & 0xFF);
|
|
336
|
+
result_array[3] = static_cast<uint8>(x & 0xFF);
|
|
337
|
+
return result;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
// ===================================================================
|
|
341
|
+
// Shutdown support.
|
|
342
|
+
|
|
343
|
+
namespace internal {
|
|
344
|
+
|
|
345
|
+
typedef void OnShutdownFunc();
|
|
346
|
+
vector<void (*)()>* shutdown_functions = NULL;
|
|
347
|
+
Mutex* shutdown_functions_mutex = NULL;
|
|
348
|
+
GOOGLE_PROTOBUF_DECLARE_ONCE(shutdown_functions_init);
|
|
349
|
+
|
|
350
|
+
void InitShutdownFunctions() {
|
|
351
|
+
shutdown_functions = new vector<void (*)()>;
|
|
352
|
+
shutdown_functions_mutex = new Mutex;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
inline void InitShutdownFunctionsOnce() {
|
|
356
|
+
GoogleOnceInit(&shutdown_functions_init, &InitShutdownFunctions);
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
void OnShutdown(void (*func)()) {
|
|
360
|
+
InitShutdownFunctionsOnce();
|
|
361
|
+
MutexLock lock(shutdown_functions_mutex);
|
|
362
|
+
shutdown_functions->push_back(func);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
} // namespace internal
|
|
366
|
+
|
|
367
|
+
void ShutdownProtobufLibrary() {
|
|
368
|
+
internal::InitShutdownFunctionsOnce();
|
|
369
|
+
|
|
370
|
+
// We don't need to lock shutdown_functions_mutex because it's up to the
|
|
371
|
+
// caller to make sure that no one is using the library before this is
|
|
372
|
+
// called.
|
|
373
|
+
|
|
374
|
+
// Make it safe to call this multiple times.
|
|
375
|
+
if (internal::shutdown_functions == NULL) return;
|
|
376
|
+
|
|
377
|
+
for (int i = 0; i < internal::shutdown_functions->size(); i++) {
|
|
378
|
+
internal::shutdown_functions->at(i)();
|
|
379
|
+
}
|
|
380
|
+
delete internal::shutdown_functions;
|
|
381
|
+
internal::shutdown_functions = NULL;
|
|
382
|
+
delete internal::shutdown_functions_mutex;
|
|
383
|
+
internal::shutdown_functions_mutex = NULL;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
#if PROTOBUF_USE_EXCEPTIONS
|
|
387
|
+
FatalException::~FatalException() throw() {}
|
|
388
|
+
|
|
389
|
+
const char* FatalException::what() const throw() {
|
|
390
|
+
return message_.c_str();
|
|
391
|
+
}
|
|
392
|
+
#endif
|
|
393
|
+
|
|
394
|
+
} // namespace protobuf
|
|
395
|
+
} // namespace google
|