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,44 @@
|
|
|
1
|
+
#!/bin/sh -x
|
|
2
|
+
#
|
|
3
|
+
# Protocol Buffers - Google's data interchange format
|
|
4
|
+
# Copyright 2009 Google Inc. All rights reserved.
|
|
5
|
+
# https://developers.google.com/protocol-buffers/
|
|
6
|
+
#
|
|
7
|
+
# Redistribution and use in source and binary forms, with or without
|
|
8
|
+
# modification, are permitted provided that the following conditions are
|
|
9
|
+
# met:
|
|
10
|
+
#
|
|
11
|
+
# * Redistributions of source code must retain the above copyright
|
|
12
|
+
# notice, this list of conditions and the following disclaimer.
|
|
13
|
+
# * Redistributions in binary form must reproduce the above
|
|
14
|
+
# copyright notice, this list of conditions and the following disclaimer
|
|
15
|
+
# in the documentation and/or other materials provided with the
|
|
16
|
+
# distribution.
|
|
17
|
+
# * Neither the name of Google Inc. nor the names of its
|
|
18
|
+
# contributors may be used to endorse or promote products derived from
|
|
19
|
+
# this software without specific prior written permission.
|
|
20
|
+
#
|
|
21
|
+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
22
|
+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
23
|
+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
24
|
+
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
25
|
+
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
26
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
27
|
+
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
28
|
+
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
29
|
+
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
30
|
+
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
31
|
+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
32
|
+
#
|
|
33
|
+
# Author: brianolson@google.com (Brian Olson)
|
|
34
|
+
#
|
|
35
|
+
# Test compatibility between command line gzip/gunzip binaries and
|
|
36
|
+
# ZeroCopyStream versions.
|
|
37
|
+
|
|
38
|
+
TESTFILE=Makefile
|
|
39
|
+
|
|
40
|
+
(./zcgzip < ${TESTFILE} | gunzip | cmp - ${TESTFILE}) && \
|
|
41
|
+
(gzip < ${TESTFILE} | ./zcgunzip | cmp - ${TESTFILE})
|
|
42
|
+
|
|
43
|
+
# Result of "(cmd) && (cmd)" implicitly becomes result of this script
|
|
44
|
+
# and thus the test.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
|
2
|
+
// Copyright 2008 Google Inc. All rights reserved.
|
|
3
|
+
// https://developers.google.com/protocol-buffers/
|
|
4
|
+
//
|
|
5
|
+
// Redistribution and use in source and binary forms, with or without
|
|
6
|
+
// modification, are permitted provided that the following conditions are
|
|
7
|
+
// met:
|
|
8
|
+
//
|
|
9
|
+
// * Redistributions of source code must retain the above copyright
|
|
10
|
+
// notice, this list of conditions and the following disclaimer.
|
|
11
|
+
// * Redistributions in binary form must reproduce the above
|
|
12
|
+
// copyright notice, this list of conditions and the following disclaimer
|
|
13
|
+
// in the documentation and/or other materials provided with the
|
|
14
|
+
// distribution.
|
|
15
|
+
// * Neither the name of Google Inc. nor the names of its
|
|
16
|
+
// contributors may be used to endorse or promote products derived from
|
|
17
|
+
// this software without specific prior written permission.
|
|
18
|
+
//
|
|
19
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
20
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
21
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
22
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
23
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
24
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
25
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
26
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
27
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
28
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
29
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
30
|
+
|
|
31
|
+
// Author: kenton@google.com (Kenton Varda)
|
|
32
|
+
// Based on original Protocol Buffers design by
|
|
33
|
+
// Sanjay Ghemawat, Jeff Dean, and others.
|
|
34
|
+
//
|
|
35
|
+
// This file exists solely to document the google::protobuf::io namespace.
|
|
36
|
+
// It is not compiled into anything, but it may be read by an automated
|
|
37
|
+
// documentation generator.
|
|
38
|
+
|
|
39
|
+
namespace google {
|
|
40
|
+
|
|
41
|
+
namespace protobuf {
|
|
42
|
+
|
|
43
|
+
// Auxiliary classes used for I/O.
|
|
44
|
+
//
|
|
45
|
+
// The Protocol Buffer library uses the classes in this package to deal with
|
|
46
|
+
// I/O and encoding/decoding raw bytes. Most users will not need to
|
|
47
|
+
// deal with this package. However, users who want to adapt the system to
|
|
48
|
+
// work with their own I/O abstractions -- e.g., to allow Protocol Buffers
|
|
49
|
+
// to be read from a different kind of input stream without the need for a
|
|
50
|
+
// temporary buffer -- should take a closer look.
|
|
51
|
+
namespace io {}
|
|
52
|
+
|
|
53
|
+
} // namespace protobuf
|
|
54
|
+
} // namespace google
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
// Protocol Buffers - Google's data interchange format
|
|
2
|
+
// Copyright 2008 Google Inc. All rights reserved.
|
|
3
|
+
// https://developers.google.com/protocol-buffers/
|
|
4
|
+
//
|
|
5
|
+
// Redistribution and use in source and binary forms, with or without
|
|
6
|
+
// modification, are permitted provided that the following conditions are
|
|
7
|
+
// met:
|
|
8
|
+
//
|
|
9
|
+
// * Redistributions of source code must retain the above copyright
|
|
10
|
+
// notice, this list of conditions and the following disclaimer.
|
|
11
|
+
// * Redistributions in binary form must reproduce the above
|
|
12
|
+
// copyright notice, this list of conditions and the following disclaimer
|
|
13
|
+
// in the documentation and/or other materials provided with the
|
|
14
|
+
// distribution.
|
|
15
|
+
// * Neither the name of Google Inc. nor the names of its
|
|
16
|
+
// contributors may be used to endorse or promote products derived from
|
|
17
|
+
// this software without specific prior written permission.
|
|
18
|
+
//
|
|
19
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
20
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
21
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
22
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
23
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
24
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
25
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
26
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
27
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
28
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
29
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
30
|
+
|
|
31
|
+
// Author: kenton@google.com (Kenton Varda)
|
|
32
|
+
// Based on original Protocol Buffers design by
|
|
33
|
+
// Sanjay Ghemawat, Jeff Dean, and others.
|
|
34
|
+
|
|
35
|
+
#include <google/protobuf/io/printer.h>
|
|
36
|
+
#include <google/protobuf/io/zero_copy_stream.h>
|
|
37
|
+
#include <google/protobuf/stubs/common.h>
|
|
38
|
+
|
|
39
|
+
namespace google {
|
|
40
|
+
namespace protobuf {
|
|
41
|
+
namespace io {
|
|
42
|
+
|
|
43
|
+
Printer::Printer(ZeroCopyOutputStream* output, char variable_delimiter)
|
|
44
|
+
: variable_delimiter_(variable_delimiter),
|
|
45
|
+
output_(output),
|
|
46
|
+
buffer_(NULL),
|
|
47
|
+
buffer_size_(0),
|
|
48
|
+
at_start_of_line_(true),
|
|
49
|
+
failed_(false) {
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
Printer::~Printer() {
|
|
53
|
+
// Only BackUp() if we have called Next() at least once and never failed.
|
|
54
|
+
if (buffer_size_ > 0 && !failed_) {
|
|
55
|
+
output_->BackUp(buffer_size_);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
void Printer::Print(const map<string, string>& variables, const char* text) {
|
|
60
|
+
int size = strlen(text);
|
|
61
|
+
int pos = 0; // The number of bytes we've written so far.
|
|
62
|
+
|
|
63
|
+
for (int i = 0; i < size; i++) {
|
|
64
|
+
if (text[i] == '\n') {
|
|
65
|
+
// Saw newline. If there is more text, we may need to insert an indent
|
|
66
|
+
// here. So, write what we have so far, including the '\n'.
|
|
67
|
+
WriteRaw(text + pos, i - pos + 1);
|
|
68
|
+
pos = i + 1;
|
|
69
|
+
|
|
70
|
+
// Setting this true will cause the next WriteRaw() to insert an indent
|
|
71
|
+
// first.
|
|
72
|
+
at_start_of_line_ = true;
|
|
73
|
+
|
|
74
|
+
} else if (text[i] == variable_delimiter_) {
|
|
75
|
+
// Saw the start of a variable name.
|
|
76
|
+
|
|
77
|
+
// Write what we have so far.
|
|
78
|
+
WriteRaw(text + pos, i - pos);
|
|
79
|
+
pos = i + 1;
|
|
80
|
+
|
|
81
|
+
// Find closing delimiter.
|
|
82
|
+
const char* end = strchr(text + pos, variable_delimiter_);
|
|
83
|
+
if (end == NULL) {
|
|
84
|
+
GOOGLE_LOG(DFATAL) << " Unclosed variable name.";
|
|
85
|
+
end = text + pos;
|
|
86
|
+
}
|
|
87
|
+
int endpos = end - text;
|
|
88
|
+
|
|
89
|
+
string varname(text + pos, endpos - pos);
|
|
90
|
+
if (varname.empty()) {
|
|
91
|
+
// Two delimiters in a row reduce to a literal delimiter character.
|
|
92
|
+
WriteRaw(&variable_delimiter_, 1);
|
|
93
|
+
} else {
|
|
94
|
+
// Replace with the variable's value.
|
|
95
|
+
map<string, string>::const_iterator iter = variables.find(varname);
|
|
96
|
+
if (iter == variables.end()) {
|
|
97
|
+
GOOGLE_LOG(DFATAL) << " Undefined variable: " << varname;
|
|
98
|
+
} else {
|
|
99
|
+
WriteRaw(iter->second.data(), iter->second.size());
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Advance past this variable.
|
|
104
|
+
i = endpos;
|
|
105
|
+
pos = endpos + 1;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// Write the rest.
|
|
110
|
+
WriteRaw(text + pos, size - pos);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
void Printer::Print(const char* text) {
|
|
114
|
+
static map<string, string> empty;
|
|
115
|
+
Print(empty, text);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
void Printer::Print(const char* text,
|
|
119
|
+
const char* variable, const string& value) {
|
|
120
|
+
map<string, string> vars;
|
|
121
|
+
vars[variable] = value;
|
|
122
|
+
Print(vars, text);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
void Printer::Print(const char* text,
|
|
126
|
+
const char* variable1, const string& value1,
|
|
127
|
+
const char* variable2, const string& value2) {
|
|
128
|
+
map<string, string> vars;
|
|
129
|
+
vars[variable1] = value1;
|
|
130
|
+
vars[variable2] = value2;
|
|
131
|
+
Print(vars, text);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
void Printer::Print(const char* text,
|
|
135
|
+
const char* variable1, const string& value1,
|
|
136
|
+
const char* variable2, const string& value2,
|
|
137
|
+
const char* variable3, const string& value3) {
|
|
138
|
+
map<string, string> vars;
|
|
139
|
+
vars[variable1] = value1;
|
|
140
|
+
vars[variable2] = value2;
|
|
141
|
+
vars[variable3] = value3;
|
|
142
|
+
Print(vars, text);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
void Printer::Indent() {
|
|
146
|
+
indent_ += " ";
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
void Printer::Outdent() {
|
|
150
|
+
if (indent_.empty()) {
|
|
151
|
+
GOOGLE_LOG(DFATAL) << " Outdent() without matching Indent().";
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
indent_.resize(indent_.size() - 2);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
void Printer::PrintRaw(const string& data) {
|
|
159
|
+
WriteRaw(data.data(), data.size());
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
void Printer::PrintRaw(const char* data) {
|
|
163
|
+
if (failed_) return;
|
|
164
|
+
WriteRaw(data, strlen(data));
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
void Printer::WriteRaw(const char* data, int size) {
|
|
168
|
+
if (failed_) return;
|
|
169
|
+
if (size == 0) return;
|
|
170
|
+
|
|
171
|
+
if (at_start_of_line_ && (size > 0) && (data[0] != '\n')) {
|
|
172
|
+
// Insert an indent.
|
|
173
|
+
at_start_of_line_ = false;
|
|
174
|
+
WriteRaw(indent_.data(), indent_.size());
|
|
175
|
+
if (failed_) return;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
while (size > buffer_size_) {
|
|
179
|
+
// Data exceeds space in the buffer. Copy what we can and request a
|
|
180
|
+
// new buffer.
|
|
181
|
+
memcpy(buffer_, data, buffer_size_);
|
|
182
|
+
data += buffer_size_;
|
|
183
|
+
size -= buffer_size_;
|
|
184
|
+
void* void_buffer;
|
|
185
|
+
failed_ = !output_->Next(&void_buffer, &buffer_size_);
|
|
186
|
+
if (failed_) return;
|
|
187
|
+
buffer_ = reinterpret_cast<char*>(void_buffer);
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
// Buffer is big enough to receive the data; copy it.
|
|
191
|
+
memcpy(buffer_, data, size);
|
|
192
|
+
buffer_ += size;
|
|
193
|
+
buffer_size_ -= size;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
} // namespace io
|
|
197
|
+
} // namespace protobuf
|
|
198
|
+
} // namespace google
|
|
@@ -0,0 +1,136 @@
|
|
|
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
|
+
// Utility class for writing text to a ZeroCopyOutputStream.
|
|
36
|
+
|
|
37
|
+
#ifndef GOOGLE_PROTOBUF_IO_PRINTER_H__
|
|
38
|
+
#define GOOGLE_PROTOBUF_IO_PRINTER_H__
|
|
39
|
+
|
|
40
|
+
#include <string>
|
|
41
|
+
#include <map>
|
|
42
|
+
#include <google/protobuf/stubs/common.h>
|
|
43
|
+
|
|
44
|
+
namespace google {
|
|
45
|
+
namespace protobuf {
|
|
46
|
+
namespace io {
|
|
47
|
+
|
|
48
|
+
class ZeroCopyOutputStream; // zero_copy_stream.h
|
|
49
|
+
|
|
50
|
+
// This simple utility class assists in code generation. It basically
|
|
51
|
+
// allows the caller to define a set of variables and then output some
|
|
52
|
+
// text with variable substitutions. Example usage:
|
|
53
|
+
//
|
|
54
|
+
// Printer printer(output, '$');
|
|
55
|
+
// map<string, string> vars;
|
|
56
|
+
// vars["name"] = "Bob";
|
|
57
|
+
// printer.Print(vars, "My name is $name$.");
|
|
58
|
+
//
|
|
59
|
+
// The above writes "My name is Bob." to the output stream.
|
|
60
|
+
//
|
|
61
|
+
// Printer aggressively enforces correct usage, crashing (with assert failures)
|
|
62
|
+
// in the case of undefined variables in debug builds. This helps greatly in
|
|
63
|
+
// debugging code which uses it.
|
|
64
|
+
class LIBPROTOBUF_EXPORT Printer {
|
|
65
|
+
public:
|
|
66
|
+
// Create a printer that writes text to the given output stream. Use the
|
|
67
|
+
// given character as the delimiter for variables.
|
|
68
|
+
Printer(ZeroCopyOutputStream* output, char variable_delimiter);
|
|
69
|
+
~Printer();
|
|
70
|
+
|
|
71
|
+
// Print some text after applying variable substitutions. If a particular
|
|
72
|
+
// variable in the text is not defined, this will crash. Variables to be
|
|
73
|
+
// substituted are identified by their names surrounded by delimiter
|
|
74
|
+
// characters (as given to the constructor). The variable bindings are
|
|
75
|
+
// defined by the given map.
|
|
76
|
+
void Print(const map<string, string>& variables, const char* text);
|
|
77
|
+
|
|
78
|
+
// Like the first Print(), except the substitutions are given as parameters.
|
|
79
|
+
void Print(const char* text);
|
|
80
|
+
// Like the first Print(), except the substitutions are given as parameters.
|
|
81
|
+
void Print(const char* text, const char* variable, const string& value);
|
|
82
|
+
// Like the first Print(), except the substitutions are given as parameters.
|
|
83
|
+
void Print(const char* text, const char* variable1, const string& value1,
|
|
84
|
+
const char* variable2, const string& value2);
|
|
85
|
+
// Like the first Print(), except the substitutions are given as parameters.
|
|
86
|
+
void Print(const char* text, const char* variable1, const string& value1,
|
|
87
|
+
const char* variable2, const string& value2,
|
|
88
|
+
const char* variable3, const string& value3);
|
|
89
|
+
// TODO(kenton): Overloaded versions with more variables? Three seems
|
|
90
|
+
// to be enough.
|
|
91
|
+
|
|
92
|
+
// Indent text by two spaces. After calling Indent(), two spaces will be
|
|
93
|
+
// inserted at the beginning of each line of text. Indent() may be called
|
|
94
|
+
// multiple times to produce deeper indents.
|
|
95
|
+
void Indent();
|
|
96
|
+
|
|
97
|
+
// Reduces the current indent level by two spaces, or crashes if the indent
|
|
98
|
+
// level is zero.
|
|
99
|
+
void Outdent();
|
|
100
|
+
|
|
101
|
+
// Write a string to the output buffer.
|
|
102
|
+
// This method does not look for newlines to add indentation.
|
|
103
|
+
void PrintRaw(const string& data);
|
|
104
|
+
|
|
105
|
+
// Write a zero-delimited string to output buffer.
|
|
106
|
+
// This method does not look for newlines to add indentation.
|
|
107
|
+
void PrintRaw(const char* data);
|
|
108
|
+
|
|
109
|
+
// Write some bytes to the output buffer.
|
|
110
|
+
// This method does not look for newlines to add indentation.
|
|
111
|
+
void WriteRaw(const char* data, int size);
|
|
112
|
+
|
|
113
|
+
// True if any write to the underlying stream failed. (We don't just
|
|
114
|
+
// crash in this case because this is an I/O failure, not a programming
|
|
115
|
+
// error.)
|
|
116
|
+
bool failed() const { return failed_; }
|
|
117
|
+
|
|
118
|
+
private:
|
|
119
|
+
const char variable_delimiter_;
|
|
120
|
+
|
|
121
|
+
ZeroCopyOutputStream* const output_;
|
|
122
|
+
char* buffer_;
|
|
123
|
+
int buffer_size_;
|
|
124
|
+
|
|
125
|
+
string indent_;
|
|
126
|
+
bool at_start_of_line_;
|
|
127
|
+
bool failed_;
|
|
128
|
+
|
|
129
|
+
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(Printer);
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
} // namespace io
|
|
133
|
+
} // namespace protobuf
|
|
134
|
+
|
|
135
|
+
} // namespace google
|
|
136
|
+
#endif // GOOGLE_PROTOBUF_IO_PRINTER_H__
|
|
@@ -0,0 +1,285 @@
|
|
|
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 <vector>
|
|
36
|
+
|
|
37
|
+
#include <google/protobuf/io/printer.h>
|
|
38
|
+
#include <google/protobuf/io/zero_copy_stream_impl.h>
|
|
39
|
+
|
|
40
|
+
#include <google/protobuf/stubs/common.h>
|
|
41
|
+
#include <google/protobuf/testing/googletest.h>
|
|
42
|
+
#include <gtest/gtest.h>
|
|
43
|
+
|
|
44
|
+
namespace google {
|
|
45
|
+
namespace protobuf {
|
|
46
|
+
namespace io {
|
|
47
|
+
namespace {
|
|
48
|
+
|
|
49
|
+
// Each test repeats over several block sizes in order to test both cases
|
|
50
|
+
// where particular writes cross a buffer boundary and cases where they do
|
|
51
|
+
// not.
|
|
52
|
+
|
|
53
|
+
TEST(Printer, EmptyPrinter) {
|
|
54
|
+
char buffer[8192];
|
|
55
|
+
const int block_size = 100;
|
|
56
|
+
ArrayOutputStream output(buffer, GOOGLE_ARRAYSIZE(buffer), block_size);
|
|
57
|
+
Printer printer(&output, '\0');
|
|
58
|
+
EXPECT_TRUE(!printer.failed());
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
TEST(Printer, BasicPrinting) {
|
|
62
|
+
char buffer[8192];
|
|
63
|
+
|
|
64
|
+
for (int block_size = 1; block_size < 512; block_size *= 2) {
|
|
65
|
+
ArrayOutputStream output(buffer, sizeof(buffer), block_size);
|
|
66
|
+
|
|
67
|
+
{
|
|
68
|
+
Printer printer(&output, '\0');
|
|
69
|
+
|
|
70
|
+
printer.Print("Hello World!");
|
|
71
|
+
printer.Print(" This is the same line.\n");
|
|
72
|
+
printer.Print("But this is a new one.\nAnd this is another one.");
|
|
73
|
+
|
|
74
|
+
EXPECT_FALSE(printer.failed());
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
buffer[output.ByteCount()] = '\0';
|
|
78
|
+
|
|
79
|
+
EXPECT_STREQ("Hello World! This is the same line.\n"
|
|
80
|
+
"But this is a new one.\n"
|
|
81
|
+
"And this is another one.",
|
|
82
|
+
buffer);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
TEST(Printer, WriteRaw) {
|
|
87
|
+
char buffer[8192];
|
|
88
|
+
|
|
89
|
+
for (int block_size = 1; block_size < 512; block_size *= 2) {
|
|
90
|
+
ArrayOutputStream output(buffer, sizeof(buffer), block_size);
|
|
91
|
+
|
|
92
|
+
{
|
|
93
|
+
string string_obj = "From an object\n";
|
|
94
|
+
Printer printer(&output, '$');
|
|
95
|
+
printer.WriteRaw("Hello World!", 12);
|
|
96
|
+
printer.PrintRaw(" This is the same line.\n");
|
|
97
|
+
printer.PrintRaw("But this is a new one.\nAnd this is another one.");
|
|
98
|
+
printer.WriteRaw("\n", 1);
|
|
99
|
+
printer.PrintRaw(string_obj);
|
|
100
|
+
EXPECT_FALSE(printer.failed());
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
buffer[output.ByteCount()] = '\0';
|
|
104
|
+
|
|
105
|
+
EXPECT_STREQ("Hello World! This is the same line.\n"
|
|
106
|
+
"But this is a new one.\n"
|
|
107
|
+
"And this is another one."
|
|
108
|
+
"\n"
|
|
109
|
+
"From an object\n",
|
|
110
|
+
buffer);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
TEST(Printer, VariableSubstitution) {
|
|
115
|
+
char buffer[8192];
|
|
116
|
+
|
|
117
|
+
for (int block_size = 1; block_size < 512; block_size *= 2) {
|
|
118
|
+
ArrayOutputStream output(buffer, sizeof(buffer), block_size);
|
|
119
|
+
|
|
120
|
+
{
|
|
121
|
+
Printer printer(&output, '$');
|
|
122
|
+
map<string, string> vars;
|
|
123
|
+
|
|
124
|
+
vars["foo"] = "World";
|
|
125
|
+
vars["bar"] = "$foo$";
|
|
126
|
+
vars["abcdefg"] = "1234";
|
|
127
|
+
|
|
128
|
+
printer.Print(vars, "Hello $foo$!\nbar = $bar$\n");
|
|
129
|
+
printer.PrintRaw("RawBit\n");
|
|
130
|
+
printer.Print(vars, "$abcdefg$\nA literal dollar sign: $$");
|
|
131
|
+
|
|
132
|
+
vars["foo"] = "blah";
|
|
133
|
+
printer.Print(vars, "\nNow foo = $foo$.");
|
|
134
|
+
|
|
135
|
+
EXPECT_FALSE(printer.failed());
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
buffer[output.ByteCount()] = '\0';
|
|
139
|
+
|
|
140
|
+
EXPECT_STREQ("Hello World!\n"
|
|
141
|
+
"bar = $foo$\n"
|
|
142
|
+
"RawBit\n"
|
|
143
|
+
"1234\n"
|
|
144
|
+
"A literal dollar sign: $\n"
|
|
145
|
+
"Now foo = blah.",
|
|
146
|
+
buffer);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
TEST(Printer, InlineVariableSubstitution) {
|
|
151
|
+
char buffer[8192];
|
|
152
|
+
|
|
153
|
+
ArrayOutputStream output(buffer, sizeof(buffer));
|
|
154
|
+
|
|
155
|
+
{
|
|
156
|
+
Printer printer(&output, '$');
|
|
157
|
+
printer.Print("Hello $foo$!\n", "foo", "World");
|
|
158
|
+
printer.PrintRaw("RawBit\n");
|
|
159
|
+
printer.Print("$foo$ $bar$\n", "foo", "one", "bar", "two");
|
|
160
|
+
EXPECT_FALSE(printer.failed());
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
buffer[output.ByteCount()] = '\0';
|
|
164
|
+
|
|
165
|
+
EXPECT_STREQ("Hello World!\n"
|
|
166
|
+
"RawBit\n"
|
|
167
|
+
"one two\n",
|
|
168
|
+
buffer);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
TEST(Printer, Indenting) {
|
|
172
|
+
char buffer[8192];
|
|
173
|
+
|
|
174
|
+
for (int block_size = 1; block_size < 512; block_size *= 2) {
|
|
175
|
+
ArrayOutputStream output(buffer, sizeof(buffer), block_size);
|
|
176
|
+
|
|
177
|
+
{
|
|
178
|
+
Printer printer(&output, '$');
|
|
179
|
+
map<string, string> vars;
|
|
180
|
+
|
|
181
|
+
vars["newline"] = "\n";
|
|
182
|
+
|
|
183
|
+
printer.Print("This is not indented.\n");
|
|
184
|
+
printer.Indent();
|
|
185
|
+
printer.Print("This is indented\nAnd so is this\n");
|
|
186
|
+
printer.Outdent();
|
|
187
|
+
printer.Print("But this is not.");
|
|
188
|
+
printer.Indent();
|
|
189
|
+
printer.Print(" And this is still the same line.\n"
|
|
190
|
+
"But this is indented.\n");
|
|
191
|
+
printer.PrintRaw("RawBit has indent at start\n");
|
|
192
|
+
printer.PrintRaw("but not after a raw newline\n");
|
|
193
|
+
printer.Print(vars, "Note that a newline in a variable will break "
|
|
194
|
+
"indenting, as we see$newline$here.\n");
|
|
195
|
+
printer.Indent();
|
|
196
|
+
printer.Print("And this");
|
|
197
|
+
printer.Outdent();
|
|
198
|
+
printer.Outdent();
|
|
199
|
+
printer.Print(" is double-indented\nBack to normal.");
|
|
200
|
+
|
|
201
|
+
EXPECT_FALSE(printer.failed());
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
buffer[output.ByteCount()] = '\0';
|
|
205
|
+
|
|
206
|
+
EXPECT_STREQ(
|
|
207
|
+
"This is not indented.\n"
|
|
208
|
+
" This is indented\n"
|
|
209
|
+
" And so is this\n"
|
|
210
|
+
"But this is not. And this is still the same line.\n"
|
|
211
|
+
" But this is indented.\n"
|
|
212
|
+
" RawBit has indent at start\n"
|
|
213
|
+
"but not after a raw newline\n"
|
|
214
|
+
"Note that a newline in a variable will break indenting, as we see\n"
|
|
215
|
+
"here.\n"
|
|
216
|
+
" And this is double-indented\n"
|
|
217
|
+
"Back to normal.",
|
|
218
|
+
buffer);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
// Death tests do not work on Windows as of yet.
|
|
223
|
+
#ifdef PROTOBUF_HAS_DEATH_TEST
|
|
224
|
+
TEST(Printer, Death) {
|
|
225
|
+
char buffer[8192];
|
|
226
|
+
|
|
227
|
+
ArrayOutputStream output(buffer, sizeof(buffer));
|
|
228
|
+
Printer printer(&output, '$');
|
|
229
|
+
|
|
230
|
+
EXPECT_DEBUG_DEATH(printer.Print("$nosuchvar$"), "Undefined variable");
|
|
231
|
+
EXPECT_DEBUG_DEATH(printer.Print("$unclosed"), "Unclosed variable name");
|
|
232
|
+
EXPECT_DEBUG_DEATH(printer.Outdent(), "without matching Indent");
|
|
233
|
+
}
|
|
234
|
+
#endif // PROTOBUF_HAS_DEATH_TEST
|
|
235
|
+
|
|
236
|
+
TEST(Printer, WriteFailurePartial) {
|
|
237
|
+
char buffer[17];
|
|
238
|
+
|
|
239
|
+
ArrayOutputStream output(buffer, sizeof(buffer));
|
|
240
|
+
Printer printer(&output, '$');
|
|
241
|
+
|
|
242
|
+
// Print 16 bytes to almost fill the buffer (should not fail).
|
|
243
|
+
printer.Print("0123456789abcdef");
|
|
244
|
+
EXPECT_FALSE(printer.failed());
|
|
245
|
+
|
|
246
|
+
// Try to print 2 chars. Only one fits.
|
|
247
|
+
printer.Print("<>");
|
|
248
|
+
EXPECT_TRUE(printer.failed());
|
|
249
|
+
|
|
250
|
+
// Anything else should fail too.
|
|
251
|
+
printer.Print(" ");
|
|
252
|
+
EXPECT_TRUE(printer.failed());
|
|
253
|
+
printer.Print("blah");
|
|
254
|
+
EXPECT_TRUE(printer.failed());
|
|
255
|
+
|
|
256
|
+
// Buffer should contain the first 17 bytes written.
|
|
257
|
+
EXPECT_EQ("0123456789abcdef<", string(buffer, sizeof(buffer)));
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
TEST(Printer, WriteFailureExact) {
|
|
261
|
+
char buffer[16];
|
|
262
|
+
|
|
263
|
+
ArrayOutputStream output(buffer, sizeof(buffer));
|
|
264
|
+
Printer printer(&output, '$');
|
|
265
|
+
|
|
266
|
+
// Print 16 bytes to fill the buffer exactly (should not fail).
|
|
267
|
+
printer.Print("0123456789abcdef");
|
|
268
|
+
EXPECT_FALSE(printer.failed());
|
|
269
|
+
|
|
270
|
+
// Try to print one more byte (should fail).
|
|
271
|
+
printer.Print(" ");
|
|
272
|
+
EXPECT_TRUE(printer.failed());
|
|
273
|
+
|
|
274
|
+
// Should not crash
|
|
275
|
+
printer.Print("blah");
|
|
276
|
+
EXPECT_TRUE(printer.failed());
|
|
277
|
+
|
|
278
|
+
// Buffer should contain the first 16 bytes written.
|
|
279
|
+
EXPECT_EQ("0123456789abcdef", string(buffer, sizeof(buffer)));
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
} // namespace
|
|
283
|
+
} // namespace io
|
|
284
|
+
} // namespace protobuf
|
|
285
|
+
} // namespace google
|