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,335 @@
|
|
|
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
|
+
// Authors: wink@google.com (Wink Saville),
|
|
32
|
+
// kenton@google.com (Kenton Varda)
|
|
33
|
+
// Based on original Protocol Buffers design by
|
|
34
|
+
// Sanjay Ghemawat, Jeff Dean, and others.
|
|
35
|
+
|
|
36
|
+
#include <google/protobuf/message_lite.h>
|
|
37
|
+
#include <string>
|
|
38
|
+
#include <google/protobuf/stubs/common.h>
|
|
39
|
+
#include <google/protobuf/io/coded_stream.h>
|
|
40
|
+
#include <google/protobuf/io/zero_copy_stream_impl_lite.h>
|
|
41
|
+
#include <google/protobuf/stubs/stl_util.h>
|
|
42
|
+
|
|
43
|
+
namespace google {
|
|
44
|
+
namespace protobuf {
|
|
45
|
+
|
|
46
|
+
MessageLite::~MessageLite() {}
|
|
47
|
+
|
|
48
|
+
string MessageLite::InitializationErrorString() const {
|
|
49
|
+
return "(cannot determine missing fields for lite message)";
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
namespace {
|
|
53
|
+
|
|
54
|
+
// When serializing, we first compute the byte size, then serialize the message.
|
|
55
|
+
// If serialization produces a different number of bytes than expected, we
|
|
56
|
+
// call this function, which crashes. The problem could be due to a bug in the
|
|
57
|
+
// protobuf implementation but is more likely caused by concurrent modification
|
|
58
|
+
// of the message. This function attempts to distinguish between the two and
|
|
59
|
+
// provide a useful error message.
|
|
60
|
+
void ByteSizeConsistencyError(int byte_size_before_serialization,
|
|
61
|
+
int byte_size_after_serialization,
|
|
62
|
+
int bytes_produced_by_serialization) {
|
|
63
|
+
GOOGLE_CHECK_EQ(byte_size_before_serialization, byte_size_after_serialization)
|
|
64
|
+
<< "Protocol message was modified concurrently during serialization.";
|
|
65
|
+
GOOGLE_CHECK_EQ(bytes_produced_by_serialization, byte_size_before_serialization)
|
|
66
|
+
<< "Byte size calculation and serialization were inconsistent. This "
|
|
67
|
+
"may indicate a bug in protocol buffers or it may be caused by "
|
|
68
|
+
"concurrent modification of the message.";
|
|
69
|
+
GOOGLE_LOG(FATAL) << "This shouldn't be called if all the sizes are equal.";
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
string InitializationErrorMessage(const char* action,
|
|
73
|
+
const MessageLite& message) {
|
|
74
|
+
// Note: We want to avoid depending on strutil in the lite library, otherwise
|
|
75
|
+
// we'd use:
|
|
76
|
+
//
|
|
77
|
+
// return strings::Substitute(
|
|
78
|
+
// "Can't $0 message of type \"$1\" because it is missing required "
|
|
79
|
+
// "fields: $2",
|
|
80
|
+
// action, message.GetTypeName(),
|
|
81
|
+
// message.InitializationErrorString());
|
|
82
|
+
|
|
83
|
+
string result;
|
|
84
|
+
result += "Can't ";
|
|
85
|
+
result += action;
|
|
86
|
+
result += " message of type \"";
|
|
87
|
+
result += message.GetTypeName();
|
|
88
|
+
result += "\" because it is missing required fields: ";
|
|
89
|
+
result += message.InitializationErrorString();
|
|
90
|
+
return result;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Several of the Parse methods below just do one thing and then call another
|
|
94
|
+
// method. In a naive implementation, we might have ParseFromString() call
|
|
95
|
+
// ParseFromArray() which would call ParseFromZeroCopyStream() which would call
|
|
96
|
+
// ParseFromCodedStream() which would call MergeFromCodedStream() which would
|
|
97
|
+
// call MergePartialFromCodedStream(). However, when parsing very small
|
|
98
|
+
// messages, every function call introduces significant overhead. To avoid
|
|
99
|
+
// this without reproducing code, we use these forced-inline helpers.
|
|
100
|
+
//
|
|
101
|
+
// Note: GCC only allows GOOGLE_ATTRIBUTE_ALWAYS_INLINE on declarations, not
|
|
102
|
+
// definitions.
|
|
103
|
+
inline bool InlineMergeFromCodedStream(io::CodedInputStream* input,
|
|
104
|
+
MessageLite* message)
|
|
105
|
+
GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
|
|
106
|
+
inline bool InlineParseFromCodedStream(io::CodedInputStream* input,
|
|
107
|
+
MessageLite* message)
|
|
108
|
+
GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
|
|
109
|
+
inline bool InlineParsePartialFromCodedStream(io::CodedInputStream* input,
|
|
110
|
+
MessageLite* message)
|
|
111
|
+
GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
|
|
112
|
+
inline bool InlineParseFromArray(const void* data, int size,
|
|
113
|
+
MessageLite* message)
|
|
114
|
+
GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
|
|
115
|
+
inline bool InlineParsePartialFromArray(const void* data, int size,
|
|
116
|
+
MessageLite* message)
|
|
117
|
+
GOOGLE_ATTRIBUTE_ALWAYS_INLINE;
|
|
118
|
+
|
|
119
|
+
bool InlineMergeFromCodedStream(io::CodedInputStream* input,
|
|
120
|
+
MessageLite* message) {
|
|
121
|
+
if (!message->MergePartialFromCodedStream(input)) return false;
|
|
122
|
+
if (!message->IsInitialized()) {
|
|
123
|
+
GOOGLE_LOG(ERROR) << InitializationErrorMessage("parse", *message);
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
bool InlineParseFromCodedStream(io::CodedInputStream* input,
|
|
130
|
+
MessageLite* message) {
|
|
131
|
+
message->Clear();
|
|
132
|
+
return InlineMergeFromCodedStream(input, message);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
bool InlineParsePartialFromCodedStream(io::CodedInputStream* input,
|
|
136
|
+
MessageLite* message) {
|
|
137
|
+
message->Clear();
|
|
138
|
+
return message->MergePartialFromCodedStream(input);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
bool InlineParseFromArray(const void* data, int size, MessageLite* message) {
|
|
142
|
+
io::CodedInputStream input(reinterpret_cast<const uint8*>(data), size);
|
|
143
|
+
return InlineParseFromCodedStream(&input, message) &&
|
|
144
|
+
input.ConsumedEntireMessage();
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
bool InlineParsePartialFromArray(const void* data, int size,
|
|
148
|
+
MessageLite* message) {
|
|
149
|
+
io::CodedInputStream input(reinterpret_cast<const uint8*>(data), size);
|
|
150
|
+
return InlineParsePartialFromCodedStream(&input, message) &&
|
|
151
|
+
input.ConsumedEntireMessage();
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
} // namespace
|
|
155
|
+
|
|
156
|
+
bool MessageLite::MergeFromCodedStream(io::CodedInputStream* input) {
|
|
157
|
+
return InlineMergeFromCodedStream(input, this);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
bool MessageLite::ParseFromCodedStream(io::CodedInputStream* input) {
|
|
161
|
+
return InlineParseFromCodedStream(input, this);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
bool MessageLite::ParsePartialFromCodedStream(io::CodedInputStream* input) {
|
|
165
|
+
return InlineParsePartialFromCodedStream(input, this);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
bool MessageLite::ParseFromZeroCopyStream(io::ZeroCopyInputStream* input) {
|
|
169
|
+
io::CodedInputStream decoder(input);
|
|
170
|
+
return ParseFromCodedStream(&decoder) && decoder.ConsumedEntireMessage();
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
bool MessageLite::ParsePartialFromZeroCopyStream(
|
|
174
|
+
io::ZeroCopyInputStream* input) {
|
|
175
|
+
io::CodedInputStream decoder(input);
|
|
176
|
+
return ParsePartialFromCodedStream(&decoder) &&
|
|
177
|
+
decoder.ConsumedEntireMessage();
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
bool MessageLite::ParseFromBoundedZeroCopyStream(
|
|
181
|
+
io::ZeroCopyInputStream* input, int size) {
|
|
182
|
+
io::CodedInputStream decoder(input);
|
|
183
|
+
decoder.PushLimit(size);
|
|
184
|
+
return ParseFromCodedStream(&decoder) &&
|
|
185
|
+
decoder.ConsumedEntireMessage() &&
|
|
186
|
+
decoder.BytesUntilLimit() == 0;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
bool MessageLite::ParsePartialFromBoundedZeroCopyStream(
|
|
190
|
+
io::ZeroCopyInputStream* input, int size) {
|
|
191
|
+
io::CodedInputStream decoder(input);
|
|
192
|
+
decoder.PushLimit(size);
|
|
193
|
+
return ParsePartialFromCodedStream(&decoder) &&
|
|
194
|
+
decoder.ConsumedEntireMessage() &&
|
|
195
|
+
decoder.BytesUntilLimit() == 0;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
bool MessageLite::ParseFromString(const string& data) {
|
|
199
|
+
return InlineParseFromArray(data.data(), data.size(), this);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
bool MessageLite::ParsePartialFromString(const string& data) {
|
|
203
|
+
return InlineParsePartialFromArray(data.data(), data.size(), this);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
bool MessageLite::ParseFromArray(const void* data, int size) {
|
|
207
|
+
return InlineParseFromArray(data, size, this);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
bool MessageLite::ParsePartialFromArray(const void* data, int size) {
|
|
211
|
+
return InlineParsePartialFromArray(data, size, this);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
// ===================================================================
|
|
216
|
+
|
|
217
|
+
uint8* MessageLite::SerializeWithCachedSizesToArray(uint8* target) const {
|
|
218
|
+
// We only optimize this when using optimize_for = SPEED. In other cases
|
|
219
|
+
// we just use the CodedOutputStream path.
|
|
220
|
+
int size = GetCachedSize();
|
|
221
|
+
io::ArrayOutputStream out(target, size);
|
|
222
|
+
io::CodedOutputStream coded_out(&out);
|
|
223
|
+
SerializeWithCachedSizes(&coded_out);
|
|
224
|
+
GOOGLE_CHECK(!coded_out.HadError());
|
|
225
|
+
return target + size;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
bool MessageLite::SerializeToCodedStream(io::CodedOutputStream* output) const {
|
|
229
|
+
GOOGLE_DCHECK(IsInitialized()) << InitializationErrorMessage("serialize", *this);
|
|
230
|
+
return SerializePartialToCodedStream(output);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
bool MessageLite::SerializePartialToCodedStream(
|
|
234
|
+
io::CodedOutputStream* output) const {
|
|
235
|
+
const int size = ByteSize(); // Force size to be cached.
|
|
236
|
+
uint8* buffer = output->GetDirectBufferForNBytesAndAdvance(size);
|
|
237
|
+
if (buffer != NULL) {
|
|
238
|
+
uint8* end = SerializeWithCachedSizesToArray(buffer);
|
|
239
|
+
if (end - buffer != size) {
|
|
240
|
+
ByteSizeConsistencyError(size, ByteSize(), end - buffer);
|
|
241
|
+
}
|
|
242
|
+
return true;
|
|
243
|
+
} else {
|
|
244
|
+
int original_byte_count = output->ByteCount();
|
|
245
|
+
SerializeWithCachedSizes(output);
|
|
246
|
+
if (output->HadError()) {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
int final_byte_count = output->ByteCount();
|
|
250
|
+
|
|
251
|
+
if (final_byte_count - original_byte_count != size) {
|
|
252
|
+
ByteSizeConsistencyError(size, ByteSize(),
|
|
253
|
+
final_byte_count - original_byte_count);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
bool MessageLite::SerializeToZeroCopyStream(
|
|
261
|
+
io::ZeroCopyOutputStream* output) const {
|
|
262
|
+
io::CodedOutputStream encoder(output);
|
|
263
|
+
return SerializeToCodedStream(&encoder);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
bool MessageLite::SerializePartialToZeroCopyStream(
|
|
267
|
+
io::ZeroCopyOutputStream* output) const {
|
|
268
|
+
io::CodedOutputStream encoder(output);
|
|
269
|
+
return SerializePartialToCodedStream(&encoder);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
bool MessageLite::AppendToString(string* output) const {
|
|
273
|
+
GOOGLE_DCHECK(IsInitialized()) << InitializationErrorMessage("serialize", *this);
|
|
274
|
+
return AppendPartialToString(output);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
bool MessageLite::AppendPartialToString(string* output) const {
|
|
278
|
+
int old_size = output->size();
|
|
279
|
+
int byte_size = ByteSize();
|
|
280
|
+
STLStringResizeUninitialized(output, old_size + byte_size);
|
|
281
|
+
uint8* start =
|
|
282
|
+
reinterpret_cast<uint8*>(io::mutable_string_data(output) + old_size);
|
|
283
|
+
uint8* end = SerializeWithCachedSizesToArray(start);
|
|
284
|
+
if (end - start != byte_size) {
|
|
285
|
+
ByteSizeConsistencyError(byte_size, ByteSize(), end - start);
|
|
286
|
+
}
|
|
287
|
+
return true;
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
bool MessageLite::SerializeToString(string* output) const {
|
|
291
|
+
output->clear();
|
|
292
|
+
return AppendToString(output);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
bool MessageLite::SerializePartialToString(string* output) const {
|
|
296
|
+
output->clear();
|
|
297
|
+
return AppendPartialToString(output);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
bool MessageLite::SerializeToArray(void* data, int size) const {
|
|
301
|
+
GOOGLE_DCHECK(IsInitialized()) << InitializationErrorMessage("serialize", *this);
|
|
302
|
+
return SerializePartialToArray(data, size);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
bool MessageLite::SerializePartialToArray(void* data, int size) const {
|
|
306
|
+
int byte_size = ByteSize();
|
|
307
|
+
if (size < byte_size) return false;
|
|
308
|
+
uint8* start = reinterpret_cast<uint8*>(data);
|
|
309
|
+
uint8* end = SerializeWithCachedSizesToArray(start);
|
|
310
|
+
if (end - start != byte_size) {
|
|
311
|
+
ByteSizeConsistencyError(byte_size, ByteSize(), end - start);
|
|
312
|
+
}
|
|
313
|
+
return true;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
string MessageLite::SerializeAsString() const {
|
|
317
|
+
// If the compiler implements the (Named) Return Value Optimization,
|
|
318
|
+
// the local variable 'result' will not actually reside on the stack
|
|
319
|
+
// of this function, but will be overlaid with the object that the
|
|
320
|
+
// caller supplied for the return value to be constructed in.
|
|
321
|
+
string output;
|
|
322
|
+
if (!AppendToString(&output))
|
|
323
|
+
output.clear();
|
|
324
|
+
return output;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
string MessageLite::SerializePartialAsString() const {
|
|
328
|
+
string output;
|
|
329
|
+
if (!AppendPartialToString(&output))
|
|
330
|
+
output.clear();
|
|
331
|
+
return output;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
} // namespace protobuf
|
|
335
|
+
} // namespace google
|
|
@@ -0,0 +1,247 @@
|
|
|
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
|
+
// Authors: wink@google.com (Wink Saville),
|
|
32
|
+
// kenton@google.com (Kenton Varda)
|
|
33
|
+
// Based on original Protocol Buffers design by
|
|
34
|
+
// Sanjay Ghemawat, Jeff Dean, and others.
|
|
35
|
+
//
|
|
36
|
+
// Defines MessageLite, the abstract interface implemented by all (lite
|
|
37
|
+
// and non-lite) protocol message objects.
|
|
38
|
+
|
|
39
|
+
#ifndef GOOGLE_PROTOBUF_MESSAGE_LITE_H__
|
|
40
|
+
#define GOOGLE_PROTOBUF_MESSAGE_LITE_H__
|
|
41
|
+
|
|
42
|
+
#include <google/protobuf/stubs/common.h>
|
|
43
|
+
|
|
44
|
+
namespace google {
|
|
45
|
+
namespace protobuf {
|
|
46
|
+
|
|
47
|
+
namespace io {
|
|
48
|
+
class CodedInputStream;
|
|
49
|
+
class CodedOutputStream;
|
|
50
|
+
class ZeroCopyInputStream;
|
|
51
|
+
class ZeroCopyOutputStream;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Interface to light weight protocol messages.
|
|
55
|
+
//
|
|
56
|
+
// This interface is implemented by all protocol message objects. Non-lite
|
|
57
|
+
// messages additionally implement the Message interface, which is a
|
|
58
|
+
// subclass of MessageLite. Use MessageLite instead when you only need
|
|
59
|
+
// the subset of features which it supports -- namely, nothing that uses
|
|
60
|
+
// descriptors or reflection. You can instruct the protocol compiler
|
|
61
|
+
// to generate classes which implement only MessageLite, not the full
|
|
62
|
+
// Message interface, by adding the following line to the .proto file:
|
|
63
|
+
//
|
|
64
|
+
// option optimize_for = LITE_RUNTIME;
|
|
65
|
+
//
|
|
66
|
+
// This is particularly useful on resource-constrained systems where
|
|
67
|
+
// the full protocol buffers runtime library is too big.
|
|
68
|
+
//
|
|
69
|
+
// Note that on non-constrained systems (e.g. servers) when you need
|
|
70
|
+
// to link in lots of protocol definitions, a better way to reduce
|
|
71
|
+
// total code footprint is to use optimize_for = CODE_SIZE. This
|
|
72
|
+
// will make the generated code smaller while still supporting all the
|
|
73
|
+
// same features (at the expense of speed). optimize_for = LITE_RUNTIME
|
|
74
|
+
// is best when you only have a small number of message types linked
|
|
75
|
+
// into your binary, in which case the size of the protocol buffers
|
|
76
|
+
// runtime itself is the biggest problem.
|
|
77
|
+
class LIBPROTOBUF_EXPORT MessageLite {
|
|
78
|
+
public:
|
|
79
|
+
inline MessageLite() {}
|
|
80
|
+
virtual ~MessageLite();
|
|
81
|
+
|
|
82
|
+
// Basic Operations ------------------------------------------------
|
|
83
|
+
|
|
84
|
+
// Get the name of this message type, e.g. "foo.bar.BazProto".
|
|
85
|
+
virtual string GetTypeName() const = 0;
|
|
86
|
+
|
|
87
|
+
// Construct a new instance of the same type. Ownership is passed to the
|
|
88
|
+
// caller.
|
|
89
|
+
virtual MessageLite* New() const = 0;
|
|
90
|
+
|
|
91
|
+
// Clear all fields of the message and set them to their default values.
|
|
92
|
+
// Clear() avoids freeing memory, assuming that any memory allocated
|
|
93
|
+
// to hold parts of the message will be needed again to hold the next
|
|
94
|
+
// message. If you actually want to free the memory used by a Message,
|
|
95
|
+
// you must delete it.
|
|
96
|
+
virtual void Clear() = 0;
|
|
97
|
+
|
|
98
|
+
// Quickly check if all required fields have values set.
|
|
99
|
+
virtual bool IsInitialized() const = 0;
|
|
100
|
+
|
|
101
|
+
// This is not implemented for Lite messages -- it just returns "(cannot
|
|
102
|
+
// determine missing fields for lite message)". However, it is implemented
|
|
103
|
+
// for full messages. See message.h.
|
|
104
|
+
virtual string InitializationErrorString() const;
|
|
105
|
+
|
|
106
|
+
// If |other| is the exact same class as this, calls MergeFrom(). Otherwise,
|
|
107
|
+
// results are undefined (probably crash).
|
|
108
|
+
virtual void CheckTypeAndMergeFrom(const MessageLite& other) = 0;
|
|
109
|
+
|
|
110
|
+
// Parsing ---------------------------------------------------------
|
|
111
|
+
// Methods for parsing in protocol buffer format. Most of these are
|
|
112
|
+
// just simple wrappers around MergeFromCodedStream(). Clear() will be called
|
|
113
|
+
// before merging the input.
|
|
114
|
+
|
|
115
|
+
// Fill the message with a protocol buffer parsed from the given input
|
|
116
|
+
// stream. Returns false on a read error or if the input is in the
|
|
117
|
+
// wrong format.
|
|
118
|
+
bool ParseFromCodedStream(io::CodedInputStream* input);
|
|
119
|
+
// Like ParseFromCodedStream(), but accepts messages that are missing
|
|
120
|
+
// required fields.
|
|
121
|
+
bool ParsePartialFromCodedStream(io::CodedInputStream* input);
|
|
122
|
+
// Read a protocol buffer from the given zero-copy input stream. If
|
|
123
|
+
// successful, the entire input will be consumed.
|
|
124
|
+
bool ParseFromZeroCopyStream(io::ZeroCopyInputStream* input);
|
|
125
|
+
// Like ParseFromZeroCopyStream(), but accepts messages that are missing
|
|
126
|
+
// required fields.
|
|
127
|
+
bool ParsePartialFromZeroCopyStream(io::ZeroCopyInputStream* input);
|
|
128
|
+
// Read a protocol buffer from the given zero-copy input stream, expecting
|
|
129
|
+
// the message to be exactly "size" bytes long. If successful, exactly
|
|
130
|
+
// this many bytes will have been consumed from the input.
|
|
131
|
+
bool ParseFromBoundedZeroCopyStream(io::ZeroCopyInputStream* input, int size);
|
|
132
|
+
// Like ParseFromBoundedZeroCopyStream(), but accepts messages that are
|
|
133
|
+
// missing required fields.
|
|
134
|
+
bool ParsePartialFromBoundedZeroCopyStream(io::ZeroCopyInputStream* input,
|
|
135
|
+
int size);
|
|
136
|
+
// Parse a protocol buffer contained in a string.
|
|
137
|
+
bool ParseFromString(const string& data);
|
|
138
|
+
// Like ParseFromString(), but accepts messages that are missing
|
|
139
|
+
// required fields.
|
|
140
|
+
bool ParsePartialFromString(const string& data);
|
|
141
|
+
// Parse a protocol buffer contained in an array of bytes.
|
|
142
|
+
bool ParseFromArray(const void* data, int size);
|
|
143
|
+
// Like ParseFromArray(), but accepts messages that are missing
|
|
144
|
+
// required fields.
|
|
145
|
+
bool ParsePartialFromArray(const void* data, int size);
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
// Reads a protocol buffer from the stream and merges it into this
|
|
149
|
+
// Message. Singular fields read from the input overwrite what is
|
|
150
|
+
// already in the Message and repeated fields are appended to those
|
|
151
|
+
// already present.
|
|
152
|
+
//
|
|
153
|
+
// It is the responsibility of the caller to call input->LastTagWas()
|
|
154
|
+
// (for groups) or input->ConsumedEntireMessage() (for non-groups) after
|
|
155
|
+
// this returns to verify that the message's end was delimited correctly.
|
|
156
|
+
//
|
|
157
|
+
// ParsefromCodedStream() is implemented as Clear() followed by
|
|
158
|
+
// MergeFromCodedStream().
|
|
159
|
+
bool MergeFromCodedStream(io::CodedInputStream* input);
|
|
160
|
+
|
|
161
|
+
// Like MergeFromCodedStream(), but succeeds even if required fields are
|
|
162
|
+
// missing in the input.
|
|
163
|
+
//
|
|
164
|
+
// MergeFromCodedStream() is just implemented as MergePartialFromCodedStream()
|
|
165
|
+
// followed by IsInitialized().
|
|
166
|
+
virtual bool MergePartialFromCodedStream(io::CodedInputStream* input) = 0;
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
// Serialization ---------------------------------------------------
|
|
170
|
+
// Methods for serializing in protocol buffer format. Most of these
|
|
171
|
+
// are just simple wrappers around ByteSize() and SerializeWithCachedSizes().
|
|
172
|
+
|
|
173
|
+
// Write a protocol buffer of this message to the given output. Returns
|
|
174
|
+
// false on a write error. If the message is missing required fields,
|
|
175
|
+
// this may GOOGLE_CHECK-fail.
|
|
176
|
+
bool SerializeToCodedStream(io::CodedOutputStream* output) const;
|
|
177
|
+
// Like SerializeToCodedStream(), but allows missing required fields.
|
|
178
|
+
bool SerializePartialToCodedStream(io::CodedOutputStream* output) const;
|
|
179
|
+
// Write the message to the given zero-copy output stream. All required
|
|
180
|
+
// fields must be set.
|
|
181
|
+
bool SerializeToZeroCopyStream(io::ZeroCopyOutputStream* output) const;
|
|
182
|
+
// Like SerializeToZeroCopyStream(), but allows missing required fields.
|
|
183
|
+
bool SerializePartialToZeroCopyStream(io::ZeroCopyOutputStream* output) const;
|
|
184
|
+
// Serialize the message and store it in the given string. All required
|
|
185
|
+
// fields must be set.
|
|
186
|
+
bool SerializeToString(string* output) const;
|
|
187
|
+
// Like SerializeToString(), but allows missing required fields.
|
|
188
|
+
bool SerializePartialToString(string* output) const;
|
|
189
|
+
// Serialize the message and store it in the given byte array. All required
|
|
190
|
+
// fields must be set.
|
|
191
|
+
bool SerializeToArray(void* data, int size) const;
|
|
192
|
+
// Like SerializeToArray(), but allows missing required fields.
|
|
193
|
+
bool SerializePartialToArray(void* data, int size) const;
|
|
194
|
+
|
|
195
|
+
// Make a string encoding the message. Is equivalent to calling
|
|
196
|
+
// SerializeToString() on a string and using that. Returns the empty
|
|
197
|
+
// string if SerializeToString() would have returned an error.
|
|
198
|
+
// Note: If you intend to generate many such strings, you may
|
|
199
|
+
// reduce heap fragmentation by instead re-using the same string
|
|
200
|
+
// object with calls to SerializeToString().
|
|
201
|
+
string SerializeAsString() const;
|
|
202
|
+
// Like SerializeAsString(), but allows missing required fields.
|
|
203
|
+
string SerializePartialAsString() const;
|
|
204
|
+
|
|
205
|
+
// Like SerializeToString(), but appends to the data to the string's existing
|
|
206
|
+
// contents. All required fields must be set.
|
|
207
|
+
bool AppendToString(string* output) const;
|
|
208
|
+
// Like AppendToString(), but allows missing required fields.
|
|
209
|
+
bool AppendPartialToString(string* output) const;
|
|
210
|
+
|
|
211
|
+
// Computes the serialized size of the message. This recursively calls
|
|
212
|
+
// ByteSize() on all embedded messages. If a subclass does not override
|
|
213
|
+
// this, it MUST override SetCachedSize().
|
|
214
|
+
virtual int ByteSize() const = 0;
|
|
215
|
+
|
|
216
|
+
// Serializes the message without recomputing the size. The message must
|
|
217
|
+
// not have changed since the last call to ByteSize(); if it has, the results
|
|
218
|
+
// are undefined.
|
|
219
|
+
virtual void SerializeWithCachedSizes(
|
|
220
|
+
io::CodedOutputStream* output) const = 0;
|
|
221
|
+
|
|
222
|
+
// Like SerializeWithCachedSizes, but writes directly to *target, returning
|
|
223
|
+
// a pointer to the byte immediately after the last byte written. "target"
|
|
224
|
+
// must point at a byte array of at least ByteSize() bytes.
|
|
225
|
+
virtual uint8* SerializeWithCachedSizesToArray(uint8* target) const;
|
|
226
|
+
|
|
227
|
+
// Returns the result of the last call to ByteSize(). An embedded message's
|
|
228
|
+
// size is needed both to serialize it (because embedded messages are
|
|
229
|
+
// length-delimited) and to compute the outer message's size. Caching
|
|
230
|
+
// the size avoids computing it multiple times.
|
|
231
|
+
//
|
|
232
|
+
// ByteSize() does not automatically use the cached size when available
|
|
233
|
+
// because this would require invalidating it every time the message was
|
|
234
|
+
// modified, which would be too hard and expensive. (E.g. if a deeply-nested
|
|
235
|
+
// sub-message is changed, all of its parents' cached sizes would need to be
|
|
236
|
+
// invalidated, which is too much work for an otherwise inlined setter
|
|
237
|
+
// method.)
|
|
238
|
+
virtual int GetCachedSize() const = 0;
|
|
239
|
+
|
|
240
|
+
private:
|
|
241
|
+
GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(MessageLite);
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
} // namespace protobuf
|
|
245
|
+
|
|
246
|
+
} // namespace google
|
|
247
|
+
#endif // GOOGLE_PROTOBUF_MESSAGE_LITE_H__
|